@
NerbraskaGuy @
wangtian2020 修正一下我 9#的错误回复,我又试了一下 ref 定义 loading 变量,在对 loading.value 整体重新赋值后确实会触发更新,我的结论是基于对 loading.value.xx 赋值,这是不能捕获修改的,原因就是 @
ooo4 说的创建时默认没有对 object key 监听,进行引用和扩展类似创建新对象则会触发 update ,deep 和`watch binding`则是主动激活监听。
```
const loading = ref(false)
loading.value = { loading: true, text: 'loading...' }
// 状态更新正常
const loading = ref({ loading: false })
loading.value = { loading: true }
// 状态更新正常
const loading = ref({ loading: false })
loading.value.loading = true
// 无法更新
```
不过从组件的角度肯定是不限制 ref 和 reactive 更合适,因为没有严格的代码规范并不能要求所有人都用 ref.value 赋值。