平时对象的值变化监听,在watch上即可监听,但是表达式只接受简单的键路径。'obj’或者‘obj.xx’,而对于更复杂的就需要用到函数
示例:
现在父组件传递给子组件conf
对象,现在想动态的监听
conf.formModel[conf.item.prop]
,也就是formModel
中a
属性的变化
conf:{
formModel:{
a:‘1123’
},
item:{
prop:'a'
}
}
键路径方式会报错:
watch: {
'conf.formModel[conf.item.prop]': {
immediate: true,
handler(val) {
console.log('变化', val)
}
}
}
改用方法代替 vm.$watch( expOrFn, callback, [options] )
this.$watch(
function() {
return this.conf.formModel[this.conf.item.prop]
},
value => {
console.log(‘变化的值’,value)
}
)
千里之行
始于足下