下面是 zustand 个人最常用的写法
import { pick } from 'es-toolkit'
import { create, StateCreator } from 'zustand'
import { persist } from 'zustand/middleware'
interface FooStore {
count: number
add: () => void
}
function middleware(fn: StateCreator<FooStore>) {
return persist(fn, {
name: 'foo',
version: 1,
partialize: state => pick(state, ['count'])
})
}
export const useFooStore = create<FooStore>()(
middleware((set, get) => ({
count: 1,
add: () => {
const { count } = get()
set({
count: count + 1
})
}
}))
)