찌우닝 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 메서드를 써도 가능함!