vue父组件向子组件传递动态的值,子组件保持实时更新
data() {return {frontPoints: 0}},watch: {frontPoints(newValue, oldValue) {console.log(newValue)}}这种方式只能watch基础类型的变量,我传递的是个object啊总...
·
data() {
return {
frontPoints: 0
}
},
watch: {
frontPoints(newValue, oldValue) {
console.log(newValue)
}
}
这种方式只能watch基础类型的变量,我传递的是个object啊
总结:
1、普通watch
如上所示,用过vue的都应该挺熟悉的
2、数组的watch
data() {
return {
winChips: new Array(11).fill(0)
}
},
watch: {
winChips: {
handler(newValue, oldValue) {
for (let i = 0; i < newValue.length; i++) {
if (oldValue[i] != newValue[i]) {
console.log(newValue)
}
}
},
deep: true
}
}
3、对象的watch
data() {
return {
bet: {
pokerState: 53,
pokerHistory: 'local'
}
}
},
watch: {
bet: {
handler(newValue, oldValue) {
console.log(newValue)
},
deep: true
}
}
tips: 只要bet中的属性发生变化(可被监测到的),便会执行handler函数; 如果想监测具体的属性变化,如pokerHistory变化时,才执行handler函数,则可以利用计算属性computed做中间层。 事例如下:
4、对象的具体属性watch(活用computed)
data() {
return {
bet: {
pokerState: 53,
pokerHistory: 'local'
}
}
},
computed: {
pokerHistory() {
return this.bet.pokerHistory
}
},
watch: {
pokerHistory(newValue, oldValue) {
console.log(newValue)
}
}
更多推荐
已为社区贡献1条内容
所有评论(0)