본문 바로가기
리액트/리덕스

Redux

by 픠버 2023. 1. 3.

리덕스 모듈스 

import { v4 as uuidv4 } from "uuid";
액션아이템을 만들어 준다 
휴먼에러를 방지라기 위해 상수 처리하여서 액션을 만들어준다
const ADD_TODO = "ADD_TODO";
const REMOVE_TODO = "REMOVE_TODO";
const SWITCH_TODO = "SWITCH_TODO";

export const addTodo = (payload) => {
return {
type: ADD_TODO,
payload,
};
};

export const removeTodo = (payload) => {
return {
type: REMOVE_TODO,
payload,
};
};

export const switchTodo = (payload) => {
return {
type: SWITCH_TODO,
payload,
};
};
 
엑션 크리에이트를 만들어준다!
 
 
초기값을 설정해준다!
 

const initialState = [
{
id: uuidv4(),
title: "제목",
contents: "내용",
isDone: false,
},
{
id: uuidv4(),
title: "제목2",
contents: "내용2",
isDone: true,
},
{
id: uuidv4(),
title: "제목3",
contents: "내용3",
isDone: false,
},
];
 
 
리듀서를 만든다!!

const todos = (state = initialState, action) => {
switch (action.type) {
case ADD_TODO:
return [...state, action.payload];
case REMOVE_TODO:
return state.filter((item) => item.id !== action.payload);
case SWITCH_TODO:
return state.map((item) => {
if (item.id === action.payload) {
return { ...item, isDone: !item.isDone };
} else {
return item;
}
});
default:
return state;
}
};

export default todos;

useSelector 를 이용하여 만든 함수를 이용하여 사용한다

 

useDispatch 를 이용하여 페이로드값을 보내준다

'리액트 > 리덕스' 카테고리의 다른 글

Redux Toolkit  (0) 2022.12.24
styled component  (0) 2022.12.23
리덕스  (0) 2022.12.21
리덕스  (0) 2022.12.20
Redux  (0) 2022.12.17