Hooks 的核心不是少写 class,而是让状态逻辑可以被清晰复用。写好 Hooks,需要先写好数据流边界。

避免过度抽象

自定义 Hook 应该服务于真实重复的逻辑,而不是为了看起来高级。一个好的 Hook 名字能直接说明它管理了什么状态。

  • 副作用放进 useEffect,计算值优先保持纯粹。
  • 依赖数组要诚实,不要为了消除提示而隐藏依赖。
  • 性能优化应基于真实瓶颈,而不是条件反射。

可维护性优先

当组件变复杂时,先拆分展示结构和业务状态,再考虑 memo、callback 或更重的状态管理方案。