
➡️ 애플리케이션의 여러 부분에서 필요한 상태인 "전역" 상태를 관리하는데 도움을 줌


: 상태가 관리되는 유일한 저장소의 역할이며 스토어 안에는 현재의 앱 상태와 리듀서가 들어가있고, 추가적인 내장함수들이 있음
: 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) );