按业务拆分Store更合理可持续,因业务模块天然内聚,如“订单下单”涉及多实体与逻辑,按业务封装(如OrderFeatureStore)可避免跨Store调用、简化状态同步;团队按业务线划分,代码归属明确、迭代高效;数据复用靠组合而非共享Store,各业务Store按需建模用户快照,Store是为业务行为服务的容器,非数据表映射器。

按业务拆分更合理,也更可持续。
业务模块天然具备内聚性
一个业务功能(比如“订单下单”)通常涉及多个数据实体(商品、库存、用户地址、优惠券、支付信息)和交互逻辑。如果按数据拆分(如单独的 ProductStore、UserStore),这些操作会被强制分散,导致跨 Store 调用频繁、状态同步复杂、副作用难以追踪。而按业务拆分(如 OrderFeatureStore),能把相关状态、动作、副作用封装在一起,逻辑边界清晰,测试和维护成本更低。
团队协作与迭代效率更高
前端团队通常按业务线划分(如电商组、会员组、营销组)。每个组负责完整业务闭环,自然对应一个或多个业务 Store。这样代码归属明确,修改无需协调多个数据 Store 的维护者;新需求(如“下单时自动领券”)只需在 OrderFeatureStore 内扩展,不牵扯 UserStore 或 CouponStore 的接口变更。
数据复用靠组合,不是靠拆分
不同业务可能共用部分数据(如用户基本信息),但这不意味着要把 UserStore 拆出来全局共享。更好的做法是:
- 在各自业务 Store 中定义所需字段的最小快照(如 OrderFeatureStore 只存 userId、userName、userLevel)
- 通过统一的数据获取层(如 API Client 或 Query Hook)拉取,避免 Store 间直接依赖
- 需要强一致性时,用事件总线或状态同步机制做轻量通知(如“用户资料更新”事件),而非让多个 Store 共享同一份可变 state
警惕“数据即真理”的陷阱
把 Store 当作数据库镜像来设计,容易陷入过度规范化:字段冗余不敢加、结构不敢变、字段含义被多个业务隐式绑定。实际开发中,业务视角下的“用户”和管理后台视角下的“用户”关注点完全不同。与其维护一个大而全的 UserStore,不如允许各业务 Store 按需建模——它们本就不是同一概念。
不复杂但容易忽略:Store 是为业务行为服务的容器,不是数据表的映射器。










