Skip to content

Zustand

创建 store

每个 store 是一个自定义 hook,通过 create 创建,set 函数是修改状态的唯一手段。

js
const useStore = create((set) => ({
  // 状态,支持所有类型
  bears: 0,
  // 传入函数,参数是旧状态,基于旧状态修改状态
  increasePopulation: () => set((state) => ({ bears: state.bears + 1 })),
  // 直接传入新状态,与旧状态合并
  removeAllBears: () => set({ bears: 0 }),
}));

访问 store

在组件中调用 store 返回需要的状态和更新函数。

jsx
function BearCounter() {
  const bears = useStore((state) => state.bears);
  return <h1>{bears} around here...</h1>;
}

function Controls() {
  const increasePopulation = useStore((state) => state.increasePopulation);
  return <button onClick={increasePopulation}>one up</button>;
}