创建 Zustand store 的步骤:
- 安装 Zustand:
npm install zustand
# 或
yarn add zustand
- 创建 store 文件(例如
store.js):
import { create } from 'zustand';
const useStore = create((set) => ({
// 状态
count: 0,
user: null,
// 操作状态的方法
increment: () => set((state) => ({ count: state.count + 1 })),
decrement: () => set((state) => ({ count: state.count - 1 })),
setUser: (user) => set({ user }),
reset: () => set({ count: 0, user: null })
}));
export default useStore;
- 在组件中使用 store:
import React from 'react';
import useStore from './store';
function Counter() {
// 方法 1:获取整个 store
const { count, increment, decrement } = useStore();
// 方法 2:选择性订阅(推荐,性能更好)
const countValue = useStore((state) => state.count);
const incrementCount = useStore((state) => state.increment);
return (
<div>
<h1>Count: {count}</h1>
<button onClick={increment}>Increment</button>
<button onClick={decrement}>Decrement</button>
</div>
);
}
export default Counter;
关键点:
- 使用
create 函数创建 store
- store 是一个函数,接收
set 和 get 两个参数
set 用于更新状态,支持函数式更新
- 使用
useStore hook 在组件中访问状态
- 推荐使用选择性订阅来优化性能