ComputedValue 懒计算
Computed 是缓存的派生值:仅当依赖的 observable 变了才重新算;读取时若仍有效则直接返回缓存(懒计算 / 记忆化)。
1. 与 useMemo 对比
| computed | useMemo | |
|---|---|---|
| 依赖 | 自动追踪 | 手动 deps |
| 用于 | store / 类 | 组件内 |
2. 生命周期
- 首次 get:执行 derivation 函数,缓存 value,登记依赖。
- 依赖变:标脏;下次 get 重算。
- keepAlive:可选保持订阅即使暂无 observer(少用,占内存)。
3. 注意
- computed 内不要有副作用(应放 reaction)。
- 循环依赖会报错或栈溢出;用 reaction 拆分。
4. 总结
Computed = 自动 deps 的 getter;MobX 应用大部分「派生状态」应放这里而非组件里重复算。