Redux Toolkit 사용!
16746 단어 ReactTypeScriptReduxtech
그럼 이번엔 Redux Toolkit에 대한 비망록을 정리하고 싶습니다!
※ 자신이 사용하는 함수 등만 처리하기 때문에 전체를 포괄하는 것은 아닙니다.양해 부탁드립니다.
라이브러리 정보
레드ux란 무엇인가?
우선 Redux가 무엇인지 미리 기재해 두세요.
state를 관리하고 업데이트하는 것은 이른바'상태 관리'라이브러리 중의 하나이다.
state를 업데이트할 때 디스패치 함수를 사용하여 액션을 Reducter에 보내고 액션의 type에 따라 처리합니다.
Redux Toolkit이란?
다음은 Redux Toolkit에 대한 설명입니다.
Redux Toolkit은 Redux를 쉽게 처리할 수 있는 라이브러리입니다.
Redux를 단독으로 사용하는 것보다 간단하게 기술할 수 있습니다.
Redux를 처리하는 표준 수단이 되는 것을 목표로 하여 Redux 공식에서 사용하는 것을 추천합니다.
자세한 내용은 아래 페이지를 보십시오.상술한 설명도 이 페이지를 기초로 한다.
Redux 공식 문서 What is Redux Toolkit?
React Redux란 무엇입니까?
마지막으로 React Redux에 대해 살펴보겠습니다.
React Redux는 React와 Redux를 연결하는 프로그램 라이브러리입니다.
Redux 자체는 React가 아니어도 사용할 수 있지만 React Redux는 React를 전문적으로 겨냥한 것이다.Redux와 함께 사용합니다.
자세한 내용은 아래 페이지를 보십시오.상술한 설명도 이 페이지를 기초로 한다.
React Redux 공식 문서 Why Use React Redux?
Redux Toolkit을 사용한 상태 관리 준비
그러면 레드ux Toolkit을 이용한 상태 관리에 필요한 것들을 소개한다.
store
우선, 스토어에 대해서.
store는 state를 통일적으로 관리하는 대상입니다.
configureStore
함수를 사용하여 Reducter나middleware를 한데 모은 대상을 매개 변수로 전달합니다.리듀서를 여러 개 낼 수도 있어요.
예를 들면 다음과 같습니다.
export const store = configureStore({
reducer: {
todo: todoSlice
}
});
또한 Type Script를 사용할 때 state의 유형은 다음과 같습니다.RootState
유형을 정의했지만 함수 반환값을 사용하는 유형ReturnType
.다음의 경우
getState
함수는store가 관리하는state에 접근하여 typeof
로 되돌아온state의 유형을 생성합니다.export type RootState = ReturnType<typeof store.getState>;
slice
createSlice
함수를 사용하여 Reducter와state에 대응하는 동작을 만들고 관리할 수 있습니다.예를 들면 다음과 같습니다.
const todoSlice = createSlice({
name: 'todos',
initialState, // stateの初期値
reducers: {
addToDo: (state, action) => {
let id;
if (state.todos.length === 0) {
id = 0;
} else {
id = state.todos[state.todos.length - 1].id + 1;
}
state.todos = [...state.todos, {id: id, title: action.payload, status: false}];
}
}
});
// Action Creatorをexport
export const { addToDo } = todoSlice.actions;
// reducerをexport
export default todoSlice.reducer;
reducers
에서 Reducter를 정의했습니다.Reducters 대상의 키 이름과 name
를 사용하여 액션 type을 생성합니다.상술한 예의 type은todos/addToDo
이다.Action Creator는 Reducters 객체キー名()
입니다.지금까지 Reducter는 switch문을 사용했고 action의 type에 따라 지점을 처리했지만
createSlice
함수를 이용하여 switch문의 지점을 사용하지 않고 처리를 Reducters 대상의 속성으로 집합하여 이해하기 쉽습니다!state 업데이트 with React Redux!
이어 지금까지 제작된 리듀서 등을 활용해 실제 스테이트를 업데이트하는 방법을 소개한다.
그런 다음 React Redux의 API가 사용됩니다.
Provider
Provider
구성 요소를 사용하면 모든 구성 요소에서store를 사용할 수 있습니다!예를 들면 다음과 같이 사용한다.
root.render(
<Provider store={store}>
<App />
</Provider>
)
Hooks
React Redux에서는 어셈블리와 store의 관계를 설정하기 위한 API
hooks
가 준비되어 있습니다.state 업데이트에서 이
hooks
API를 사용합니다.useSelector
useSelector()
store에서state를 꺼냅니다.예를 들면 다음과 같습니다.
// useSelector()を使って、stateを取り出してくる。
const todo = useSelector((state: RootState) => state.todo.todos);
return (
<ul>
{todo.map((item) => {
return (
<li key={item.id}>{item.title}</li>
)
})}
</ul>
)
useDispatch
useDispatch
함수의 인용을 되돌려줍니다.dispatch
함수를 사용할 수 있도록 합니다.이 기능을 사용하면 매개변수에 Action Creator를 전달하여state 업데이트에 연결할 수 있습니다.
예를 들면 다음과 같습니다.
※ 양식은 React Hook Form을 사용합니다.
const dispatch = useDispatch();
const { register, handleSubmit } = useForm<inputForm>();
const onSubmit: SubmitHandler<inputForm> = (data) => {
// dispatch()の引数に、Action CreatorであるaddToDo()を渡している。
dispatch(addToDo(data.todo));
};
return (
<form onSubmit={handleSubmit(onSubmit)}>
<label>Task:</label>
<input { ...register("todo")} />
<input type="submit" />
</form>
);
끝말
레드ux의 용어는 복잡해서 이해하기 어렵다.
하지만 Redux Toolkit을 통해 Redux의 조작이 상당히 쉬워질 것이라는 것을 절감했습니다!
만약 인식상의 오류, 보충 등이 있다면 반드시 댓글을 남겨주세요~!
읽어주셔서 감사합니다!
참고 자료
Redux 공식 문서
Redux Toolkit 공식 문서
React Redux 공식 문서
[Type Script] Utility Type의 ReturnType을 잘 이해합니다.
React 초보자도 읽으면 꼭 알 수 있는 Redux 강좌.
Redux 입문자를 위한 첫 번째 Redux Toolkit 및 Redux Thunk 비동기 처리
크리에이트 슬라이스로 액션과 Reducter를 쉽게 관리하세요.
레드ux를 알기 쉽게 설명해 봤습니다.
참고 문헌
안녕(오카다 타쿠사) 저서'현대 자바스크립트의 기본부터 시작하는 리액트 실천 교과서'(2021)
Reference
이 문제에 관하여(Redux Toolkit 사용!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/azunasu/articles/75a5b5140b995e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)