$watch和watch属性都是监听值的变化的,是同一个作用,但是有两个不同写法。
用法一:
this.$watch((newVal,oldVal)=>{ })
注意:这种方法是监听不到对象的变化的。
用法二:
watch:{ xxx:(newVal,oldVal)=>{ // xxx是data里的数据 } }
监听对象某个值的变化
watch:{ "xxx.value":(newVal,oldVal)=>{ // xxx.value是data里对象的value } }
监听整个对象的变化(深度监听) ,handle方法:
//深度监听 obj:{ handler(newVal,oldVal){ },
deep:true }
例子:
<template> <div> <input type="text" v-model="name"> {{name}} <input type="text" v-model="age"> {{age}} <input type="text" v-model="obj.id"> {{obj.id}} <input type="text" v-model="obj"> {{obj}} </div> </template> <script> export default { name: "Home", data() { return { name: "", age: "", obj: { id: "1", addr: "gz" } }; }, created() { this.obj = { id:"99", addr:"gd" } // 用法一: this.$watch("要监听的值",(oldVal,newVal)=>{ }) this.$watch("name", (newValue, oldValue) => { console.log(newValue + "_新值"); console.log(oldValue + "_旧值"); }); //这样监听不到对象的变化的 this.$watch("obj", (newval, oldval) => { console.log(newval); console.log(oldval); }); }, //用法二: watch: { age: (newValue, oldValue) => { console.log(newValue); console.log(oldValue); }, // 监听对象中的某个属性的变化 "obj.id":(newVal,oldVal)=>{ console.log(newVal); console.log(oldVal); }, //深度监听 obj:{ handler(newVal,oldVal){ console.log(newVal); console.log(oldVal); },
deep:true } }, }; </script> <style lang="css" scoped> </style>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通