Zustand State

Polar Sponsor
爱发电 赞助
.NET 9.0

Zustand 状态管理,适用于 React 与原生 JavaScript;用于创建 store、使用选择器、将状态持久化到 localStorage、集成 devtools 等场景。

Zustand州管理 1. minimal州管理 - 没有提供者, 最低锅炉板.

功能概述

Zustand州管理 1. minimal州管理 - 没有提供者, 最低锅炉板.是一项面向实际任务的技能,主要用于QQ. 快速引用. 州更新. 选择器和性能. 访问外部组件.;Vanilla Store (No React).;

核心要点

  • Addit。
  • 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
  • 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。

使用与执行

该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;

结果检查与注意事项

若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。

Zustand 状态管理

极简状态管理方案 —— 无需 Provider,样板代码极少。

快速参考

import { create } from 'zustand';

interface BearState {
  bears: number;
  increase: (by: number) => void;
}

const useBearStore = create()((set) => ({
  bears: 0,
  increase: (by) => set((state) => ({ bears: state.bears + by })),
}));

// 在组件中 —— 仅选择所需字段
const bears = useBearStore((state) => state.bears);
const increase = useBearStore((state) => state.increase);

状态更新

// 平铺式更新(单层自动合并)
set({ bears: 5 });
set((state) => ({ bears: state.bears + 1 }));

// 嵌套对象(需手动展开)
set((state) => ({
  nested: { ...state.nested, count: state.nested.count + 1 }
}));

// 替换整个状态(不进行合并)
set({ bears: 0 }, true);

选择器与性能

// 推荐 —— 仅订阅 bears 字段
const bears = useBearStore((state) => state.bears);

// 不推荐 —— 任何状态变更都会触发重渲染
const state = useBearStore();

// 使用 useShallow 同时获取多个值(通过浅比较避免不必要的重渲染)
import { useShallow } from 'zustand/react/shallow';

const { bears, fish } = useBearStore(
  useShallow((state) => ({ bears: state.bears, fish: state.fish }))
);

// 数组解构方式同样有效
const [bears, fish] = useBearStore(
  useShallow((state) => [state.bears, state.fish])
);

在组件外部访问状态

// 获取当前状态(非响应式)
const state = useBearStore.getState();

// 更新状态
useBearStore.setState({ bears: 5 });

// 订阅状态变化
const unsub = useBearStore.subscribe((state) => console.log(state));
unsub(); // 取消订阅

纯 JavaScript Store(不依赖 React)

import { createStore } from 'zustand/vanilla';

const store = createStore((set) => ({
  bears: 0,
  increase: (by) => set((state) => ({ bears: state.bears + by })),
}));

store.getState().bears;
store.setState({ bears: 10 });
store.subscribe((state) => console.log(state));

补充文档

  • 中间件:参见 references/middleware.md,了解 persist、devtools、immer 的使用方法
  • 模式指南:参见 references/patterns.md,了解分片(slices)、测试、最佳实践等内容
  • TypeScript:参见 references/typescript.md,了解高级类型定义模式

关键使用模式

模式 适用场景
单一选择器 仅需读取一个状态字段
useShallow 需同时读取多个字段,且希望避免因无关字段变更导致的重渲染
getState() 在 React 组件外部使用(例如事件处理器、副作用逻辑等)
subscribe() 集成外部系统(如日志记录、分析上报等)
Vanilla store 运行于非 React 环境(如服务端、CLI 工具、Web Worker 等)

守门机制(persist 和 devtools)

在合入使用以下中间件的代码前(相关配置请参见 references/middleware.md):

  1. persist —— 仅当满足以下条件时允许通过:持久化的键名明确指定(通过 partialize 或经人工审查的完整状态快照),且写入存储的 JSON 数据中不包含认证令牌、API 密钥或其他敏感信息。
  2. 发布版本中启用 devtools —— 仅当满足以下任一条件时允许通过:DevTools 仅在开发环境运行(通过环境变量控制),或你在 PR 中附上一行说明,解释其为何需在生产环境中保持启用。

相关专题

更多
Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

2026.10.22

0

11

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

2026.10.22

0

10

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

2026.10.22

0

15

Gradle怎么构建Java项目
Gradle怎么构建Java项目

本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。

2026.10.22

0

10

PHP时间戳漏洞修复教程
PHP时间戳漏洞修复教程

本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。

2026.10.22

0

25

Golangci-lint配置文件与规则设置
Golangci-lint配置文件与规则设置

本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。

2026.10.22

0

15

Golangci-lint安装与入门教程
Golangci-lint安装与入门教程

本专题讲解Golangci-lint的安装、初始化、基础命令和首次代码检查,覆盖本地环境、Docker及多平台用法,帮助Go开发者快速上手。

2026.10.22

0

15

PHP2Shell高危漏洞修复教程
PHP2Shell高危漏洞修复教程

PHP2Shell漏洞是什么,哪些PHP版本和运行环境会受到影响,服务器应该如何检测与修复?本专题提供版本自查脚本、Linux与Docker升级命令、PHP-FPM和Apache排查步骤,以及修复验证、临时缓解和应急响应方案。

2026.10.22

0

12

剧云人物设定与关系管理教程
剧云人物设定与关系管理教程

本专题介绍剧云人物设定与关系管理,讲解角色小传、性格职业、人物目标、背景资料和关系网络的创建及维护方法。

2026.10.22

0

16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134万人学习