常见问题
速查
| 问题 | 要点 | 章节 |
|---|---|---|
| 核心原理? | 读追踪、写传播 | 02 |
| computed? | 懒计算、缓存 | 04 |
| action? | 事务、严格模式 | 07 |
| React? | observer | 08 |
| vs Redux? | 可变+自动 vs 不可变+dispatch | 10 |
| 异步? | runInAction / flow | 07 |
实践 Do / Don't
| ✅ Do | ❌ Don't |
|---|---|
改 store 用 action / runInAction | 在组件里到处 store.x =(严格模式下报错) |
副作用放 reaction / when | 在 computed 里请求 API |
列表项用细粒度 observer | 父组件读整棵 store |
异步结束后 runInAction 赋值 | await 后直接改 observable |
开发开 enforceActions | 生产遗留大量非 action 写入 |
总结
MobX 问题多源于 未用 action 划界 或 observer 依赖过大;先缩小依赖再谈优化。