Zustand는 몇 가지 패턴을 권장합니다. 사실 Zustand는 FluxRedux에서 살펴볼 수 있는 상태 관리 방법에서 영향을 받아 설계되었으므로 다른 라이브러리 사용 경험이 있다면 익숙할 것입니다.

하지만 Zustand는 근본적인 면에서 다르기 때문에 일부 용어가 다른 라이브러리와 일치하지 않을 수 있습니다.

권장되는 사용 패턴

다음은 Zustand에서 권장하는 사용 패턴입니다.

싱글 스토어

애플리케이션의 글로벌 상태(Global State)는 단 하나의 Zustand 스토어에서 관리되어야 합니다. 대규모 애플리케이션인 경우 Zustand는 스토어를 여러 조각으로 분할(slice)하는 것을 지원합니다.

set을 사용한 스토어 업데이트

항상 set(또는 setState)을 사용해 스토어 업데이트를 수행해야 합니다. set을 통해서만 상태가 올바르게 병합되고 상태를 구독(subscribe) 중인 컴포넌트에 적절히 알림(dispatch)이 전달되도록 할 수 있습니다.

스토어 액션 함께 관리

Zustand에서는 다른 Flux 라이브러리에서 발견되는 디스패치(dispatch)된 액션(action) 및 리듀서(reducer)를 사용하지 않고, 상태를 업데이트 할 수 있습니다. 이러한 스토어 액션은 스토어에 직접 추가할 수 있습니다.

const store = (set) => ({
	storeSliceA: ...,
	storeSliceB: ...,
	storeSliceC: ...,
	**updateX: () => set(...),
	updateY: () => set(...),**
});

const useBoundStore = create(store);