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

usestore-ts

🔗 실습 링크

React state management library

💡 내부적으로 어떻게 동작하는지 이해하고 사용할 것 타입스크립트를 잘 모른다면 어려울 수 있음 남에게 설명할 때 내부적으로는 이런 동작을 하고 있으며 어떤 방식으로 작동하는지 얘기할 수 있어야 함

사용 방법

패키지 설치

tsconfig.json 파일 decorators 사용 옵션 변경

Store 생성

Custom Hook 작성

사용 방법 예시

첫번째 인자로 스토어의 값, 두번째 인자로 스토어 자체가 반환

불러와서 사용하기

비동기 함수에 @Action 추가

⚠️ 비동기 함수에 @Action을 붙이면 다르게 작동할 수 있다는 점에 주의 별도의 액션을 만들면 신경 쓸 부분이 줄어듦

  • start, complete 붙은 것이 액션

Immer

Immer

불변성을 유지해주는 코드를 편리한 방식으로 작업할 수 있게 해주는 라이브러리 오브젝트 전체를 복사해서 주고, 그것을 이용할 수 있도록 되어 있음 Redux Toolkit 에도 기본으로 적용

3. useSyncExternalStore

useSyncExternalStore FECONF 2022 - 상태관리 이 전쟁을 끝내러 왔다

external store를 구독할 수 있는 React Hook

Last updated