➡️ 애플리케이션의 여러 부분에서 필요한 상태인 "전역" 상태를 관리하는데 도움을 줌
: 상태가 관리되는 유일한 저장소의 역할이며 스토어 안에는 현재의 앱 상태와 리듀서가 들어가있고, 추가적인 내장함수들이 있음
: store안의 state를 어떻게 바꿀 것 인가(2가지의 파라미터를 가져옴)
인자 1 : 현재의 state값
인자 2 : 어떻게 바꿀것인지(action)
//{ reducer }로 쓰게 되면 에러가 발생하니 중괄호를 빼고 써야함
import {reducer} from '../Reducers';
function reducer (인자1,인자2) {
return 새로운 상태값
}
: 클릭과 같은 사용자 상호 작용에 대한 응답으로 전달
Action 객체는 type
필드를 필수적으로 가지고 있어야 하고 필요에 따라 payload
를 작성해 구체적인 값을 전달함
payload
는 필수는 아니지만 항상 동일한 처리를 해줄수 있을때는 payload
를 안써도 되지만 특정한 값을 넣고 업데이트가 필요할때는 payload
를 씀
Action Creator (액션 생성자 함수)
: 액션을 만드는 함수, 파라미터를 받아와서 액션 객체 형태로 만들어줌
// payload가 필요 없는 경우
const increase = () => {
return {
type: 'INCREASE'
}
// payload가 필요한 경우
const setNumber = (num) => {
return {
type: 'SET_NUMBER',
payload: num
}
}
: Store의 내장함수 중 하나이며 Reducer로 Action을 전달해주는 함수 (Dispatch의 전달인자로 Action 객체가 전달됨)
➡️ 호출이 되면 Store는 Reducer 함수를 실행시켜서 관련된 Action을 참고하여 새로운 상태를 만들어줌
dispatch( increase() );
dispatch( setNumber(5) );