Zustand는 몇 가지 패턴을 권장합니다. 사실 Zustand는 Flux와 Redux에서 살펴볼 수 있는 상태 관리 방법에서 영향을 받아 설계되었으므로 다른 라이브러리 사용 경험이 있다면 익숙할 것입니다.
하지만 Zustand는 근본적인 면에서 다르기 때문에 일부 용어가 다른 라이브러리와 일치하지 않을 수 있습니다.
다음은 Zustand에서 권장하는 사용 패턴입니다.
애플리케이션의 글로벌 상태(Global State)는 단 하나의 Zustand 스토어에서 관리되어야 합니다. 대규모 애플리케이션인 경우 Zustand는 스토어를 여러 조각으로 분할(slice)하는 것을 지원합니다.
항상 set
(또는 setState
)을 사용해 스토어 업데이트를 수행해야 합니다. set
을 통해서만 상태가 올바르게 병합되고 상태를 구독(subscribe) 중인 컴포넌트에 적절히 알림(dispatch)이 전달되도록 할 수 있습니다.
Zustand에서는 다른 Flux 라이브러리에서 발견되는 디스패치(dispatch)된 액션(action) 및 리듀서(reducer)를 사용하지 않고, 상태를 업데이트 할 수 있습니다. 이러한 스토어 액션은 스토어에 직접 추가할 수 있습니다.
const store = (set) => ({
storeSliceA: ...,
storeSliceB: ...,
storeSliceC: ...,
**updateX: () => set(...),
updateY: () => set(...),**
});
const useBoundStore = create(store);