Vue 实例将会在实例化时(生命周期created实例完成)调用 $watch(),遍历 watch 对象的每一个 property,大白话就是能用了。
想监听某个变量
1.直接在watch对象里 : 变量(参数){ 。。。} 数据变动时候就执行函数了
labelClassifyId (val) {
// 根据标签分类id获取标签列、tagInfoList接口
this.getLabelListById({
classificationId: val })
},
2.变量:‘函数名’
3.变量:{
handler(){…},
配置项immediate:布尔值,
配置项deep:布尔值
}
labelClassifyId :{
handler (val) {
// 根据标签分类id获取标签列、tagInfoList接口
this.getLabelListById({
classificationId: val })
},
immediate:true
},
第三种用的也不少(相关配置):
-
immediate:为true时候,表示变量被声明时候就执行handler函数,否者是数据变化时候才执行 :
-
deep:true时候,会监听整个变量(包括里面的子属性,比如表单里面很多的子变量) ,false是默认值不监听子属性
坑:
- 如果你监听了form对象,且没有给form定义其他属性。当你给form.name='小王’时候不会触发watch,你需要配置一个deep。
- 如果form是数组,往里面push是可以触发的
- 会这些就够啦,进阶点不在这