监视属性
| 监视属性watch: |
| 1.当被监视的属性发生变化时,回调函数自动调用,进行相关操作 |
| 2. 监视的属性必须存在,才能进行监视!! |
| 3. 监视的两种写法: |
| 1. new Vue时传入watch配置 |
| 2. 通过vm.$watch监视 |
- new Vue时传入watch配置
| watch:{ |
| isHot:{ |
| immediate : true, //一运行项目就立即开启监视 |
| handler(newValue,oldValue){ |
| console.log("isHot被监视了",newValue,oldValue); |
| } |
| } |
| } |
- 通过vm.$watch监视
| vm.$watch('isHot',{ |
| immediate : true, //一运行项目就立即开启监视 |
| handler(newValue,oldValue){ |
| console.log("isHot被监视了",newValue,oldValue); |
| } |
| }) |
深度监视
| 深度监视: |
| 1. Vue中的watch默认不监测对象内部值的改变 |
| 2. 配置deep:true 可以监测对象内部值的改变 |
| 备注: |
| 1. Vue自身可以监测对象内部值的改变,但Vue提供的watch默认不可以 |
| 2. 使用watch时根据数据的具体结构,决定是否采用深度监视 |
实例
| new Vue({ |
| el: '#root', |
| data: { |
| isHot: true, |
| number:{ |
| a:1, |
| b:2, |
| } |
| }, |
| watch:{ |
| // 监视对象中某个属性的值 |
| "number.a":{ |
| immediate : true, //一运行项目就立即开启监视 |
| handler(newValue,oldValue){ |
| console.log("number.a被监视了",newValue,oldValue); |
| } |
| }, |
| //监视对象中的所有值(深度监视,默认不开启) |
| "number":{ |
| deep:true, |
| handler(newValue,oldValue){ |
| console.log("number被监视了",newValue,oldValue); |
| } |
| }, |
| |
| isHot:{ |
| immediate : true, //一运行项目就立即开启监视 |
| handler(newValue,oldValue){ |
| console.log("isHot被监视了",newValue,oldValue); |
| } |
| } |
| } |
监视的简写
| //简写 当watch没有开启immediate和deep时,只有handler时,可以开启简写 |
| |
| //在Vue定义时 |
| watch:{ |
| isHot(newValue,oldValue){ |
| console.log("isHot被监视了",newValue,oldValue); |
| } |
| } |
| |
| |
| //在Vue外面调用$watch |
| vm.$watch('isHot',function(newValue,oldValue){ |
| console.log("isHot被监视了",newValue,oldValue); |
| } |
| ) |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~