Observable 类型实现
MobX 6 默认用 Proxy 拦截对象/数组/Map/Set;也支持 Box(单值)、类字段 makeObservable / makeAutoObservable。
1. 类型一览
| 类型 | 典型用途 |
|---|---|
| ObservableObject | 模型、store |
| ObservableArray | 列表 |
| ObservableMap / Set | 键值、集合 |
| Box | 单 primitive |
| @observable.ref | 只跟踪引用替换 |
2. 修饰符(概念)
| 修饰符 | 含义 |
|---|---|
observable | 深观察 |
observable.ref | 仅 .= 替换 |
observable.shallow | 一层 |
action | 方法作为事务 |
computed | 派生 |
flow | 异步 generator 包装 |
3. makeAutoObservable
自动推断类字段为 observable/action/computed;子类/构造函数有坑,复杂类用显式 makeObservable。
4. 与 Vue/Pinia
| MobX | Vue reactivity |
|---|---|
| 显式/半显式标记 | 自动代理 |
| 多用于 React | 官方 Vue |
5. 总结
选类型 + 修饰符决定追踪粒度;大对象考虑 shallow/ref 减开销。