4. usestore-ts
1. Action을 메소드로 처리하기
💡 Redux와 달리 단일 스토어가 아니기에, 스토어 여러 개를 만들어서 사용하면 됨
CounterStore, useCounterStore 만들기
// src/stores/ObjectStore.ts
type Listener = () => void;
export default class ObjectStore {
private listeners = new Set<Listener>();
addListener(listener: Listener) {
this.listeners.add(listener);
}
removeListener(listener: Listener) {
this.listeners.delete(listener);
}
protected publish() {
this.listeners.forEach((listener) => listener());
}
}
2. usestore-ts
React state management library
💡 내부적으로 어떻게 동작하는지 이해하고 사용할 것 타입스크립트를 잘 모른다면 어려울 수 있음 남에게 설명할 때 내부적으로는 이런 동작을 하고 있으며 어떤 방식으로 작동하는지 얘기할 수 있어야 함
사용 방법
패키지 설치
tsconfig.json 파일 decorators 사용 옵션 변경
tsconfig.json 파일 decorators 사용 옵션 변경Store 생성
Custom Hook 작성
사용 방법 예시
첫번째 인자로 스토어의 값, 두번째 인자로 스토어 자체가 반환
불러와서 사용하기
비동기 함수에 @Action 추가
⚠️ 비동기 함수에 @Action을 붙이면 다르게 작동할 수 있다는 점에 주의 별도의 액션을 만들면 신경 쓸 부분이 줄어듦
start, complete 붙은 것이 액션
Immer
불변성을 유지해주는 코드를 편리한 방식으로 작업할 수 있게 해주는 라이브러리 오브젝트 전체를 복사해서 주고, 그것을 이용할 수 있도록 되어 있음 Redux Toolkit 에도 기본으로 적용
3. useSyncExternalStore
useSyncExternalStore FECONF 2022 - 상태관리 이 전쟁을 끝내러 왔다
external store를 구독할 수 있는 React Hook
Last updated