내배캠 4기 React - TIL
230116 TIL
찌우닝
2023. 1. 16. 23:58
리덕스 툴킷
createSlice의 결과물이 action creators와 reducers
createSlice 함수 안에는 객체가 인자로 들어간다.
const todosSlice = createSlice({
name: "",
initialState: "",
reducers: "",
})
reducers에는 객체로 구성되어 있고, todoList에서 쓰이는 reducer로 구성해 보면
addTodo, removeTodo, switchTodo가 있고 얘네들은 함수이다,
이 함수 하나하나가 action creator의 이름이 됨
외부에서 이것을 호출하면 type과 payload를 가진 action을 만들어줌.
const todosSlice = createSlice({
name: "todos",
initialState,
reducers: {
addTodo: () => {},
removeTodo: () => {},
switchTodo: () => {},
},
});
todosSlice는 createSlice의 결과 객체.
여기에는 action도 있고 reducer도 있으며
todosSlice.action에는 action creator들이 들어있다.
todosSlice.action을 호출하면 type과 payload를 가진 객체가 만들어진다.
export const { addTodo, removeTodo, switchTodo } = todosSlice.actions;
export default todosSlice.reducer;
리액트에서는 원래 불변성을 유지해야 하지만
리덕스 툴킷은 불변성을 유지 안 해줘도 알아서 해준다,
그래서 push 메서드를 써도 가능함!