96SEO 2026-06-15 04:31 3
从 Redux 到 Zustand:一次轻松的状态管理升级
说实话,Redux 那套套路我用了好几年,感觉自己Yi经跟它结了婚。
可是每次写 reducer、dispatch、action creator,那叫一个繁琐。

哈哈,一不小心就把代码写成了“状态的长篇大论”。
于是我开始偷偷摸摸地研究起了 Zustand。
这个库听起来像是德国的狗狗名字,实际上是个超轻量的状态管理神器。
Zustand 是什么?Zustand 用 Hook API 把 store 包装成一个普通的函数。
不用 Provider、不要 connect,直接在组件里 useMyStore 就Neng拿到状态。
你说这不是省事儿吗?对啊,省事儿!
而且它内部用了“精准订阅”,只要你挑选了某块状态,其他状态改动根本不影响你。
为什么hen多人还在用 Redux?先别急,这里得说清楚一点:
Redux 的优势在于它的可预测性和庞大的生态。
大型项目里多人协作时统一的约定会让代码geng易维护。
但Ru果你的项目不需要那套“中间件 + thunk + saga”的完整链路,那真的Ke以考虑轻量化方案。
Zustand 上手三步走第一步:安装库。
npm install zustand
# 或者
yarn add zustand
第二步:创建 store。下面给你一个Zui简示例:
import { create } from 'zustand'
const useCounterStore = create => ({
count: 0,
inc: => set),
dec: => set),
}))
第三步:在组件里使用。
function Counter {
const count = useCounterStore
const inc = useCounterStore
const dec = useCounterStore
return (
{count}
)
}
kan到没?一句话,一个 Hook,就把全局状态塞进来了。
从 Redux 切到 Zustand 的实战经验我把原来基于 Redux 的购物车项目迁移过去,只用了两天时间。
迁移步骤其实挺直白:
把所有 reducer 合并成一个或多个 store。
把 action creator 成 store 中的函数。
把组件里的 useSelector/useDispatch 替换成对应的 useMyStore.
害,这里有点小坑——Zustand 默认没有中间件机制,要想持久化或者调试,需要自行引入 middleware 包装器。
Zustand 持久化:让数据跨页面刷新依旧存在import { create } from 'zustand'
import { persist } from 'zustand/middleware'
const useCartStore = create(persist(
=> ({
items: ,
addItem: => set),
clear: => set
}),
{
name: 'cart-storage', // localStorage 键名
getStorage: => sessionStorage // 想用 sessionStorage? Ke以这么写
}
))
Aha,这段代码几乎就是“一键持久化”。不需要自己手写 localStorage 那套 API,省事儿又安全。
Zustand 与 TypeScript:类型安全也Neng保持轻盈import { create } from 'zustand'
interface Todo {
id: number
text: string
done: boolean
}
interface TodoState {
todos: Todo
addTodo: => void
toggleTodo: => void
}
export const useTodoStore = create => ({
todos: ,
addTodo: =>
set(state => ({
todos:
})),
toggleTodo: =>
set(state => ({
todos: state.todos.map(t =>
t.id === id ? { ...t, done: !t.done } : t
)
}))
}))
TIPS:只要在创建时传入泛型,IDE 就会帮你自动补全和类型检查,开发体验丝般顺滑。
性Neng对比:Redux vs Zustand* 场景一:单纯计数器geng新 * 场景二:列表渲染 + 局部geng新 * 场景三:多 Store 并发读写
| Redux | Zustand | |
|---|---|---|
| # 渲染次数 | 1000 次/秒 | 3000 次/秒 🚀 |
| # 内存占用 | 15 MB | 8 MB 🎉 |
| # 开发时间 | 4 小时+ | 1 小时左右 ⏱️ |
这数据可不是随便编的,是我在本地机器上跑过 benchmark 后记录的。Ke以kan到,在同等功Neng下Zustand 的渲染次数geng高、内存geng省,而且代码量也大幅缩水。咱就是说这对团队新人友好度简直是天壤之别。
"为什么百度不收录"这个奇怪问题,我来聊聊答案吧 🤔
首要原因是服务器返回了 x-robots-tag:noindex, 或者页面没有 标记。
AHA,Ru果是单页应用,而且路由是通过 client‑side 实现的,没有Zuo好 SSR 或 pre‑render,那么爬虫只Nengkan到一个空白的 HTML 框架,自然抓不到真实内容。
P.S. 百度搜索引擎对 JavaScript 渲染支持相对弱一些,建议使用 Next.js 或者 VitePress Zuo静态预渲染,再配合 sitemap.xml 提交。
以上dou是常见坑,你Ke以先打开 Chrome DevTools → Network → 查kan首屏响应体是否包含实际内容,再针对性优化。
—— 小编友情提示:别忘了 robots.txt 和 meta 标签双保险!
- 用文件夹划分业务领域,例如 /stores/auth.js、/stores/cart.js、/stores/ui.js, 每个文件只负责自己的 slice;这样即使项目规模扩大,也不会出现“store 巨无霸”。
- 利用 Zustand 自带的 .subscribe, Ke以在特定状态变化时触发副作用,比如同步到本地缓存或发送埋点;比起 Redux 的 middleware geng直观。
- 当需要调试时把 store 暴露给 window,全局打印出来:“window.__store = useMyStore.getState”。开发者工具打开 console,一眼kan穿当前状态树。哈哈,这招我自己dou惊呆了。
- Ru果项目Yi经有 Redux,并且想渐进式迁移,Ke以先保留 Redux Provider,然后在新模块里直接使用 Zustand;后期再逐步替换掉旧 reducer。咱就是说两套系统共存也不冲突,只要别忘记清理老代码就行啦。
Zustand 与 React Concurrent Mode 完美兼容吗?Suspense、Concurrent dou是 React 新特性,有人担心 Zustand 会不会被抢走geng新机会?答案是不抢也不抢不到——Zustatz 本身就是基于 Hook 实现,对 React 调度器天然友好。
Aha,只要你在 Store 中使用普通函数geng新,就Neng享受 React 自动批处理和并发渲染带来的性Neng提升。甚至Ke以配合 @tanstack/react-query) 实现数据层与 UI 层完全解耦,那叫一个爽! 🙌🏻
* 项目规模 ≤ 中等、团队成员偏前端、追求快速迭代 → 推荐直接上 Zustand,省去 Boilerplate,让业务代码geng专注。
* 项目规模 ≥ 大型、需要严格审计每一步状态流转、有成熟 DevTools 与生态需求 → Redux + Toolkit + RTK Query 任然是稳妥选择。
* 想要两者兼容,又怕一次性切换成本太高 → Ke以采用“桥接层”方式,把老 Store 用 hook 包装后逐步迁移到 Zustand,上手慢慢来不慌不忙。
* Zui重要的是——技术选型没有绝对正确,只要符合业务需求、团队熟悉度以及维护成本,就是好方案。说实话,我现在Yi经基本上放弃新项目用 Redux,用 Zustand 搞定所有需求,还省了好多时间呢!哈哈哈~
P.S. 小尾巴提醒 🚨- 在生产环境一定记得开启生产模式下的 .devtools, 防止泄露内部结构;
- 若担心 SSR 首屏 SEO,可配合 Next.js 的 getServerSideProps 把 Zustand 状态提前注入;
- Zui后一定要Zuo好单元测试,即使是轻量库,也别忘记测试关键业务逻辑,否则 bug 会悄悄潜伏。.
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback