Vue监控器watch的全面解析
2024-10-19 00:25:11
前言
前面讲到了计算属性computed,这次讲的是监控器watch,主要任务就是监控变量的变化
正文
watch是一个对象,键是需要观察的表达式,值是对应回调函数。值也可以是方法名,或者包含选项的对象。
1.watch擅长处理的场景:一个数据影响多个数据
2.computed擅长处理的场景:一个数据受多个数据影响
watch的特点:
1.当变量变化时调用函数
2.如果不设置immediate则在初始绑定值时不会执行
watch有两个选项:
1.deep选项:表示深层遍历,当需要监控对象内部值的变化时,可以在选项参数中指定 deep: true。注意监听数组的变动不需要这么做
2.immediate选项:如果在选项参数中指定 immediate: true,将立即触发监控中变量的函数(如果我们需要在最初绑定值的时候也执行监控函数,就需要用到immediate属性)
watch的简单用法:
watch:{// 监听stuName的变化情况
stuName: function(newVal, oldVal){//stuName是数组变量,newVal是属性变化后的值,oldVal是属性变化前的值
console.log(newVal,oldVal);
}
}
watch中的键也可以是$route之类的的实例属性:
watch: {
'$route': function(newVal, oldVal){
console.log(newVal,oldVal);
}
}
watch对象的值也可以是方法名:
watch: {
dataName: 'getPath'
},
methods: {
getPath:function(){}
}
当watch监控对象时有两种方法:
方法一:(在只监控对象内某一属性变化时使用)
watch:{
'obj.a':{ //加引号监听对象里的属性
handler(newValue,oldValue){
console.log('obje changed')
}
}
}
方法二:(当需要监控对象的所有属性变化时使用)
watch:{
obj:{
handler(newValue,oldValue){//此函数名是vue提供的
console.log('obj changed')
},
deep:true
}
}
最新文章
- 修改radio与check样式
- ENode 1.0 - 事件驱动架构(EDA)思想的在框架中如何体现
- [js开源组件开发]loading加载效果
- 杭电1003 MAX SUN
- Linux静态库和共享库
- PHP自动执行程序
- Splay POJ3468(老题新做)
- 手动升级Delphi控件时,修改inc文件的办法
- e-mail Web端管理
- 利用NSURLSession下载视频,图片,能实现断点续传
- [学习笔记] 多项式与快速傅里叶变换(FFT)基础
- Jenkins高级用法 - Jenkinsfile 介绍及实战经验
- Quick RF Tips for General Reference
- windows环境下手动安装Mysql8
- 利用h5 meta 头标签设置og属性进行帖子分享图片时而有时而无
- MyEclipse 8.6 下载
- python中的清屏函数
- Spring Boot 静态页面
- Maven学习第1期---Maven简单介绍
- 小程序:获取input输入的值
热门文章
- MySQL分组查询统计
- ctr预估论文梳理和个人理解
- vue-router Uncaught (in promise) NavigationDuplicated 错误
- thinkPHP中怎么访问域名直接跳到后台登录页面
- 用maven运行指定java类main方法
- 2.Java基础_Java常量
- python27期JavaScript:
- C++ 异或运算及其应用
- vue_05项目配置
- [LeetCode] 238. Product of Array Except Self 除本身之外的数组之积