watch监控,对比新值和旧值做出相应判断
数据变化的监控经常使用,我们可以先来看一个简单的数据变化监控的例子。例如天气预报的穿衣指数,它主要是根据温度来进行提示的,当然还有其它的,咱们就不考虑了。
html
<div id="app"> <span>今日温度{{message}}℃</span> <span>穿衣指数{{message2}}</span> <br /> <br /> <button @click="add">add</button> <button @click="decrease">decrease</button> </div>
js
var suggestion=['T恤短袖','夹克长裙','棉衣羽绒服']; var vm = new Vue({ el:"#app", data:{ message:20, message2:"T恤短袖" }, methods:{ add:function(){ this.message+=5 }, decrease:function(){ this.message-=5 } } // 有些时候我们会用实例属性的形式来写watch监控。也就是把我们watch卸载构造器的外部,这样的好处就是降低我们程序的耦合度,使程序变的灵活。 // , // watch:{ // message:function(newVal,oldVal){ // if(newVal>=26){ // this.message2=suggestion[0]; // }else if(newVal<26 && newVal >=0) // { // this.message2=suggestion[1]; // }else{ // this.message2=suggestion[2]; // } // } // } }) // 实例方法减少代码耦合度 vm.$watch('message',function(newVal,oldVal){ if(newVal>=26){ this.message2=suggestion[0]; }else if(newVal<26 && newVal >=0){ this.message2=suggestion[1]; }else{ this.message2=suggestion[2]; } })
watch中把值赋值后 在mounted是获取不到的 这是有先后顺序的 mounted要先渲染
监控嵌套内容
inp: { isSelectDropdown: false }, watch: { inp: { deep: true, handler(val, oldVal) { console.log(val.isSelectDropdown); }, } },
分类:
Vue
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?