Appearance
Composable 设计:逻辑复用、effectScope 与副作用收口
主题边界
- Composable 不是把选项式 API 换成几个函数,而是把一组状态、派生值和副作用收敛成可复用边界。
- 好的 composable 需要同时考虑参数输入、返回接口、生命周期和资源回收。
机制与流程
- Composable 内部通常组合
ref、reactive、computed、watch和生命周期钩子,形成一组逻辑闭环。 effectScope可以把一组 effect 纳入同一作用域,便于整体停止和回收,尤其适合插件式逻辑和手动创建的副作用组。- 返回值应优先暴露稳定语义接口,而不是把内部所有响应式对象原样泄露给调用方。
关键差异
- Composable 解决逻辑复用,组件解决视图复用,Pinia 解决跨组件状态共享;三者不是同一层抽象。
- 把 composable 写成“全局单例工厂”会和 store 边界冲突。
边界条件
- 如果 composable 隐式注册大量事件、定时器或全局订阅,但没有清理策略,就会直接引发泄漏和竞态。
- 返回过多内部状态会让 composable 失去封装意义,调用方也更难理解依赖关系。
工程落点
- 搜索、分页、表单、轮询、媒体控制等复杂逻辑都适合用 composable 提炼,但前提是边界清晰。
- 这类题很适合拉开工程能力差异,因为它天然会暴露你对状态、清理、接口设计的理解深度。