vue组件props属性监听不到值变化
在写项目时遇到一个问题,父组件传到子组件的prop,在子组件监听不到变化,遂查看vue文档,得知watch有一种深度监听的方法。从vue文档搬运。=》var vm = new Vue({data: {a: 1,b: 2,c: 3,d: 4,e: {f: {g: 5}}},watch: {a: function (val, oldVal) {cons
·
在写项目时遇到一个问题,父组件传到子组件的prop,在子组件监听不到变化,
遂查看vue文档,得知watch有一种深度监听的方法。
阅读vue文档如下代码。=》
var vm = new Vue({
data: {
a: 1,
b: 2,
c: 3,
d: 4,
e: {
f: {
g: 5
}
}
},
watch: {
a: function (val, oldVal) {
console.log('new: %s, old: %s', val, oldVal)
},
// 方法名
b: 'someMethod',
// 该回调会在任何被侦听的对象的 property 改变时被调用,不论其被嵌套多深
c: {
handler: function (val, oldVal) { /* ... */ },
deep: true
},
// 该回调将会在侦听开始之后被立即调用
d: {
handler: 'someMethod',
immediate: true
},
// 你可以传入回调数组,它们会被逐一调用
e: [
'handle1',
function handle2 (val, oldVal) { /* ... */ },
{
handler: function handle3 (val, oldVal) { /* ... */ },
/* ... */
}
],
// watch vm.e.f's value: {g: 5}
'e.f': function (val, oldVal) { /* ... */ }
}
})
vm.a = 2 // => new: 2, old: 1
这时就可以监听到对象内部的属性变化了。
疑惑,项目中单层的对象,没有嵌套的对象,居然也监听不到变化。
踩坑的一天。
更多推荐
已为社区贡献6条内容
所有评论(0)