Zustand
Jotai의 상태는 React 내부에 존재하지만, 때로는 React 외부와 상호작용할 수 있으면 좋을 때가 있습니다.
Zustand는 일부 값을 저장하고 Jotai의 아톰과 동기화할 수 있는 스토어 인터페이스를 제공합니다.
이 방법은 Zustand의 기본 API만 사용합니다.
설치
이 기능을 사용하려면 zustand
와 jotai-zustand
를 설치해야 합니다.
npm install zustand jotai-zustand
atomWithStore
atomWithStore
는 zustand 스토어를 사용해 새로운 아톰을 생성합니다.
이 아톰은 양방향 바인딩을 지원하며, 양쪽에서 값을 변경할 수 있습니다.
import { useAtom } from 'jotai'import { atomWithStore } from 'jotai-zustand'import create from 'zustand/vanilla'const store = create(() => ({ count: 0 }))const stateAtom = atomWithStore(store)const Counter = () => {const [state, setState] = useAtom(stateAtom)return (<>count: {state.count}<buttononClick={() => setState((prev) => ({ ...prev, count: prev.count + 1 }))}>button</button></>)}