为什么 Redux 思想可能不再适合 HarmonyOS PC?
子玥酱掘金 / 知乎 / CSDN / 简书 同名大家好我是子玥酱一名长期深耕在一线的前端程序媛 。曾就职于多家知名互联网大厂目前在某国企负责前端软件研发相关工作主要聚焦于业务型系统的工程化建设与长期维护。我持续输出和沉淀前端领域的实战经验日常关注并分享的技术方向包括前端工程化、小程序、React / RN、Flutter、跨端方案在复杂业务落地、组件抽象、性能优化以及多端协作方面积累了大量真实项目经验。技术方向前端 / 跨端 / 小程序 / 移动端工程化内容平台掘金、知乎、CSDN、简书创作特点实战导向、源码拆解、少空谈多落地文章状态长期稳定更新大量原创输出我的内容主要围绕前端技术实战、真实业务踩坑总结、框架与方案选型思考、行业趋势解读展开。文章不会停留在“API 怎么用”而是更关注为什么这么设计、在什么场景下容易踩坑、真实项目中如何取舍希望能帮你在实际工作中少走弯路。子玥酱 · 前端成长记录官 ✨ 如果你正在做前端或准备长期走前端这条路 关注我第一时间获取前端行业趋势与实践总结 可领取11 类前端进阶学习资源工程化 / 框架 / 跨端 / 面试 / 架构 一起把技术学“明白”也用“到位”持续写作持续进阶。愿我们都能在代码和生活里走得更稳一点 文章目录引言一、Redux 为什么会成功单一数据源Single Source of Truth状态只读State is Readonly纯函数更新Pure Reducer二、HarmonyOS PC 面临的问题已经变了三、Redux 管理的是 UI State而不是 Runtime State四、Redux 的 Store 天然以 Application 为边界五、状态已经不仅仅是 State而是 State Graph六、AI 开始成为新的状态修改者七、未来状态管理更像 Runtime Database八、HarmonyOS PC 真正需要的是 Runtime Store总结引言如果你做过前端开发那么一定接触过 Redux。过去十年它几乎成为大型 Web 应用状态管理的事实标准。整个架构非常经典View ↓ Action ↓ Reducer ↓ Store ↓ ViewRedux 最大的价值就是把复杂页面状态统一收敛到一个 Store 中让状态变化变得可预测。这套设计思想影响了整个前端生态ReduxVuexPiniaNgRxFlux甚至很多移动端框架也借鉴了类似模式。但是当越来越多开发者开始尝试构建 HarmonyOS PC 的 AI Native 应用时却发现一个现象Redux 依然很好但它解决的问题已经不是 HarmonyOS PC 最核心的问题。真正发生变化的不是 Redux而是软件运行模型本身。一、Redux 为什么会成功Redux 的诞生背景是典型的 Web 应用。例如商品列表 ↓ 加入购物车 ↓ 修改数量 ↓ 提交订单整个状态变化都是用户操作 ↓ 页面状态变化于是 Redux 提出了三个经典原则单一数据源Single Source of Truth所有状态集中维护conststorecreateStore(reducer)状态只读State is Readonly任何修改必须通过dispatch(action)纯函数更新Pure Reducer(state,action)newState整个状态流形成User ↓ Action ↓ Reducer ↓ Store ↓ UI这套模型最大的优势就是状态可预测对于传统 Web 来说这已经足够优秀。二、HarmonyOS PC 面临的问题已经变了HarmonyOS PC 最大的变化并不是页面更多而是运行对象变了过去页面 ↓ 组件 ↓ 状态未来Workspace ↓ Goal ↓ Task ↓ Context ↓ 状态例如一个开发者当前 Workspace 包含DevEco StudioGit 仓库接口文档企业微信浏览器AI 助手用户输入帮我完成审批流模块开发。这里真正变化的对象已经不是Button 是否点击而是当前任务是什么当前 Workspace 是什么哪些窗口属于同一个 GoalAI 当前执行到哪一步哪些 Tool 已经调用这些状态已经超出了 Redux 最初设计的边界。三、Redux 管理的是 UI State而不是 Runtime State这是两者最大的区别Redux Store 通常保存interfaceAppState{user:User cart:Cart products:Product[]}这些都属于UI State但是 AI Native Runtime 更关心的是interfaceRuntimeState{currentWorkspace:Workspace currentGoal:Goal currentTask:Task currentContext:Context activeTools:Tool[]}这里保存的已经不是页面数据而是运行时对象也就是说 Redux 管理的是页面状态HarmonyOS PC 更需要管理系统运行状态四、Redux 的 Store 天然以 Application 为边界Redux 有一个默认假设Store 属于一个 Application。例如Todo Store Chat Store Order Store每个 Store 生命周期通常跟随Application但是 HarmonyOS PC 中一个 Goal 可能跨越多个应用多个窗口多个设备例如审批流开发涉及IDE文档浏览器企业微信AI Assistant真正持续存在的是Workspace而不是Application因此新的状态边界开始变成Workspace App这意味着状态管理也需要突破单个应用的限制。五、状态已经不仅仅是 State而是 State GraphRedux 更适合管理树状 State例如Store ├── User ├── Order ├── Cart └── Config但 Runtime 世界更像Goal │ ├── Workspace │ ├── Task │ ├── Tool │ └── Context │ ├── Memory │ └── Device这些对象之间不是简单的父子关系而是Graph图例如一个 Task可能引用多个 Workspace。一个 Context可能来自多个 Device。一个 Goal可能同时依赖多个 Agent。因此未来真正需要维护的是State Graph而不是State Tree六、AI 开始成为新的状态修改者Redux 默认认为状态修改来源于User Action例如dispatch(addTodo())但 AI Native 系统中状态可能来自用户AgentPlannerTool RuntimeDistributed Sync例如Planner ↓ 创建 Task ↓ 更新 Workspace ↓ 修改 Context ↓ 触发 Tool这里已经不存在唯一的dispatch()状态变更来源变成Multi Producer因此状态系统需要支持事件融合 冲突解决 版本管理 一致性同步这些都是传统 Redux 很少涉及的问题。七、未来状态管理更像 Runtime Database很多人仍然把 Store 看成JavaScript 对象但 AI Native Runtime 中 Store 更像运行时数据库例如interfaceRuntimeStore{goals:GoalGraph tasks:TaskGraph workspace:WorkspaceState context:ContextGraph devices:DeviceGraph}它不仅保存状态还维护生命周期依赖关系状态同步分布式一致性Context 更新它已经不是传统意义上的 Store而更接近Runtime Database八、HarmonyOS PC 真正需要的是 Runtime Store未来 HarmonyOS PC 更可能形成这样的架构Workspace Runtime ↓ Runtime Store ↓ Context Engine ↓ Goal Planner ↓ Agent Runtime ↓ ArkUI Projection这里 ArkUI 只是状态投影真正运行的是Runtime Store组件只是 Runtime State 的一个可视化结果。这与传统Store ↓ View已经完全不同。总结Redux 并没有过时它依然是优秀的状态管理方案。但它诞生于Application Native时代而 HarmonyOS PC 正在进入以下时代Workspace Native ↓ Goal Native ↓ AI Native过去Store 服务于页面。未来Store 服务于 Runtime。过去State 属于 Application。未来State 属于 Workspace。过去UI 驱动状态。未来Goal、Context、Agent 共同驱动状态。所以真正需要升级的并不是 Redux 本身而是我们对于状态管理边界的理解。未来 HarmonyOS PC 更需要的也许不是一个更大的 Redux而是一套围绕Workspace、Goal、Context、Task构建的Runtime Store。它管理的不再只是页面数据而是整个 AI Native 系统的运行状态。这也是状态管理从Application State迈向Runtime State的关键一步。