当然可以。Zustand 作为一个轻量级的状态管理库,非常适合用来作为局部作用域的数据统一存储方案。
相较于 Redux,它更注重简洁性和易用性,并且充分利用了 React Hooks 的特性。
在使用 Zustand 时,你可以创建多个独立的 store 来管理不同组件或模块的本地状态。
每个 store 都是自包含的,可以在需要的组件中通过 useStore
hook 获取和修改状态:
// 创建一个 zustand store
import create from 'zustand';
const useMyLocalStore = create(set => ({
count: 0,
increase: () => set(state => ({ count: state.count + 1 })),
}));
// 在组件内部使用
function MyComponent() {
const { count, increase } = useMyLocalStore();
return (
<div>
Count: {count}
<button onClick={increase}>Increment</button>
</div>
);
}
在这个例子中,useMyLocalStore
管理了一个局部作用域内的计数器状态,仅对当前组件或者其子组件可见,不会影响全局状态。
因此,在不涉及跨组件间大量复杂状态共享的情况下,Zustand 是一个很好的替代Redux来实现局部数据管理的选择。
同时,由于它的简单设计,对于小型项目或者应用中的特定部分来说,它可能比Redux更为合适。