{
type: 'TOGGLE_VALUE'
}
{
type:'ADD_TODO',
data: {
id:1,
text:'리덕스 배우기'
}
}
{
type:'CHANGE_INPUT',
text:'안녕하세요'
}
function addTodo(data){
return {
type:'ADD_TODO'
data
}
}
화살표 함수 예시:
const changeInput =text =>({
type:'CHANGE_INPUT'
text
})
리듀서(Reducer) 는 변화를 일으키는 함수. 액션들을 만들어서 발생 시키면
리듀서가 현재 상태와 전달 받은 객체를 파라미터로 받아, 두 값을 참고하여 새로운 상태를 만들어서 반환해줌.
const initialState ={
counter:1
}
function reducer(state='initialState'){
switch (action.type){
case: INCREMENT:
return {
counter: state.counter +1
}
default:
return state
}
}
프로젝트에 리덕스를 적용하기 위해 스토어(store)를 만들어야 한다.
디스패치(dispatch)는 스토어의 내장 함수 중 하나이다.
dispatch(action)
구독 (subscribe)도 스토어의 내장 함수 중 하나이며. subscribe 함수 안에 리스너 함수를 파라미터로 넣어서 호출해 주면 listener 함수가
dispatch 되어 상태가 업데이트 될때마가 호출
const listener =()=>{
console.log('상태가 업데이트됨')
}
const unsubscribe = store.subscribe(listener)
unsubscribe()