Vue中的watch对象是用来监听实例中数据的,当你有一些数据需要随着其它数据变动而变动时,就可以使用watch来监听。这里顺便提一下watch和computer的区别,watch中监听的数据,必须是在data中或者props中定义的,而computer则刚好相反,computer中定义的数据,则是在data或props中未定义的。
常用的watch的写法:
watch:{
users: function (newValue) {
// 函数体
}
}
注意:此处定义的函数不能是箭头函数,需要使用常规函数写法,否则函数内的this不指向当前这个实例。此处users监听的是基本数据类型的值。
如果需要监听引用数据类型的值,则需要添加deep属性,例如下面这种写法:
watch: {
users: {
handler: function (newValue) {
// 函数体
},
deep: true
}
}
其中handler是固定的属性。
watch是监听users,是指当users发生变化的时候触发handler函数,以执行某些操作,如果需要在该Vue实例刚创建的触发的话,需要添加immediate属性,例如下面的写法:
watch: {
users: {
handler: function (newValue) {
// 函数体
},
deep: true,
immediate: true
}
}
结束。
本人水平有限,如果文中有错误或描述不清楚的地方,欢迎指出。