概述:全局状态让数据与 UI 解耦、跨域复用更容易;Hook 封装便于局部组合,但跨 Hook 协作需要将“胶水逻辑”提升到组件或更高层。

对比

  • 全局状态管理(redux/zustand/context)
    • 优势:单一数据源、可观测、易复用、无需层层提升;便于调试与时间旅行。
      Transclude of 全局状态管理#^xol61s
    • 劣势:容易膨胀;需要约束切片边界与订阅粒度;需防止全量重渲染。
  • Hook 封装
    • 优势:关注点隔离、可组合;组件内聚合状态与副作用。
    • 限制:Hook 之间不能直接互相调用非 Hook 上下文;跨 Hook 协作通常需要外层“胶水”统一编排。

经验法则

  • 状态使用半径广/生命周期长/跨路由共享 → 放全局。
  • 纯 UI 或局部临时状态/只在单组件树内使用 → 放 Hook/局部 state。
  • 先内聚后上提。需求演进到跨域共享时,再抽到全局。

相关