Skip to content

Composable 设计:逻辑复用、effectScope 与副作用收口

主题边界

  • Composable 不是把选项式 API 换成几个函数,而是把一组状态、派生值和副作用收敛成可复用边界。
  • 好的 composable 需要同时考虑参数输入、返回接口、生命周期和资源回收。

机制与流程

  • Composable 内部通常组合 refreactivecomputedwatch 和生命周期钩子,形成一组逻辑闭环。
  • effectScope 可以把一组 effect 纳入同一作用域,便于整体停止和回收,尤其适合插件式逻辑和手动创建的副作用组。
  • 返回值应优先暴露稳定语义接口,而不是把内部所有响应式对象原样泄露给调用方。

关键差异

  • Composable 解决逻辑复用,组件解决视图复用,Pinia 解决跨组件状态共享;三者不是同一层抽象。
  • 把 composable 写成“全局单例工厂”会和 store 边界冲突。

边界条件

  • 如果 composable 隐式注册大量事件、定时器或全局订阅,但没有清理策略,就会直接引发泄漏和竞态。
  • 返回过多内部状态会让 composable 失去封装意义,调用方也更难理解依赖关系。

工程落点

  • 搜索、分页、表单、轮询、媒体控制等复杂逻辑都适合用 composable 提炼,但前提是边界清晰。
  • 这类题很适合拉开工程能力差异,因为它天然会暴露你对状态、清理、接口设计的理解深度。

相关主题