vuejs3 - 为什么 Vue3 Composition API - watch 的选项 deep 在响应式中不起作用,但在响应式 getter 中起作用?
问题描述
- 箭头函数的深层选项是工作。
- 原始反应对象的深度选项不起作用。
看起来像一个错误,为什么 watch 的选项 deep 在响应式中不起作用,但在响应式 getter 中起作用?
1.代码
setup() {
const state = reactive({
id: 1,
attrs: {
date: new Date()
}
})
watch(state, (val, prevVal) => {
console.log('non-deep', val, prevVal)
})
watch(
() => state,
(val, prevVal) => {
console.log('non-deep getter', val, prevVal)
}
)
watch(
state,
(val, prevVal) => {
console.log('deep', val, prevVal)
},
{ deep: true }
)
watch(
() => state,
(val, prevVal) => {
console.log('deep getter', val, prevVal)
},
{ deep: true }
)
const changeDate = () => (state.attrs.date = new Date())
return {
state,
changeDate
}
}
2.控制台日志
non-deep Proxy {id: 1, attrs: {…}} Proxy {id: 1, attrs: {…}}
deep Proxy {id: 1, attrs: {…}} Proxy {id: 1, attrs: {…}}
deep getter Proxy {id: 1, attrs: {…}} Proxy {id: 1, attrs: {…}}
解决方案
推荐阅读
- javascript - 在更改文本框值时,使用 JavaScript 在下拉列表中选择一个值?
- laravel - file_put_contents(./composer.lock):打开流失败:即使在运行 chown 命令后,权限也被拒绝
- vue.js - 如何在 VS Code 中获得 mdx 文件支持(linting)?
- reactjs - 错误 TS5023:未知的编译器选项 'declarationMap'
- python - 我怎样才能通过张量并获得我想要的位置的值?
- reactjs - React hooks 单选按钮列表给出警告:列表中的每个孩子都应该有一个唯一的“key”道具
- python - 神经网络直线 - GEKKO
- powerbi-desktop - PowerBi - 在一张卡片中显示两个度量
- python - 如何在列表中均匀添加新索引?
- python-3.x - 导入错误无法在空闲时导入请求,但可以在 Jupyter/spider 上