SuperAPI AI 工具集

state-management

通用与其它

查看项目

更新于 10-16 05:07

技能介绍

该技能是一套前端状态管理实践规范,核心思路是按状态类型选择不同工具:服务端状态交给 TanStack Query,客户端状态交给 Zustand,表单状态交给 React Hook Form + Zod,URL 状态使用 nuqs 或 searchParams。

TanStack Query 部分建议使用查询键工厂(query keys factory)统一管理键结构,例如 userKeys 提供 all、lists、list、details、detail 等层级;并封装自定义 Hook,如 useUsers、useUser、useCreateUser、useUpdateUser,其中查询通过 useQuery 配合 queryKey 与 queryFn,变更通过 useMutation,并在 onSuccess 中调用 queryClient.invalidateQueries 刷新相关列表或详情缓存。

Zustand 部分建议使用带类型的 store,通过 create<UIStore> 定义状态与操作方法,如 sidebarOpen、theme、toggleSidebar、setTheme。性能上强调使用选择器,只订阅需要的字段,避免解构整个 store 导致任意状态变化都触发重渲染。持久化使用 persist 中间件并指定 name,例如 settings-storage。计算值可通过选择器函数实现,如 selectFilteredItems。

表单状态使用 React Hook Form 配合 zodResolver 与 Zod schema,通过 z.infer 推导表单类型,register 注册字段,formState.errors 展示校验错误。

限制与适用场景:资料未提供安装命令、版本要求、具体项目配置步骤及与其他状态库的对比,也未说明服务端渲染或并发场景下的注意事项。适用于采用 React 技术栈、需要区分服务端与客户端状态并统一表单校验的前端项目。