监听对象 handler定义数据变化时调用的监听器函数 可以设置 deep和immediate属性
deep属性在监听对象属性变化时使用,值为true,表示无论该对象的属性在对象中的层级有多深,只要该属性的值发生变化,都会被监测到
监听器函数在初始渲染时并不会被调用,只有在后续监听的属性发生变化时才会被调用;如果需要监听器函数在监听开始后立即执行,可以使用immediate选项将其值设置为true
<body> <div id="app"> 商品价格: <input type="text" v-model="goods.price"> <p>{{pess}}</p> </div> <script src="https://unpkg.com/vue@3/dist/vue.global.js"></script> <script> const vm = Vue.createApp({ data(){ return{ pess:'', goods:{ name:'洗衣机', price:0 } } }, // 计算属性 computed:{ },//监听器 watch:{ goods:{ handler:function(newValue,oldValue){ if(newValue.price >= 8000){ this.pess = "价格太贵了,不可以采购" }else{ this.pess = "价格合适,可以采购" } }, deep:true, //让监听器函数在页面初始化时执行,可以使用immediate选项,将其值设置为true immediate:true } },// 方法 methods:{ } }).mount('#app') </script> </body>