vue-watch监听的方法

在vue中,很多时候需要实时了解数据的变化执行相应的操作,通过watch监听能实现相应需求。

<div>
      <p>inputOne: <input type="text" v-model="value1"></p>
      <p>inputTwo: <input type="text" v-model="valueObj.value2"></p>
</div>

  

1、注册watch

export default {
    name: 'demo',
    watch: {
    value1(newVlue, oldValue) {
      this.value = newValue + 'bbb'
      console.log(this.value)
    }
  },
    data() {
      return {
      value: 'aaa',
          value1:'',
          valueObj: {
             value2: '',
          }
      }
    }       
}

  在inputOne输入123后,监听到value1的改变,打印出value的值:123bbb

 

2、handler方法

 watch中需要具体执行的方法,监听数组或对象的属性时用到的方法

 

watch: {
    value1:{
                handler(newVal,oldVal){
                    this.value = newVal + 'ccc'
                },
                immediate:true
           }
    },   

  

3、immediate属性

 

  在选项参数中指定 immediate: true 将立即以表达式的当前值触发回调,默认为false

 

 4、deep属性

 

  监听对象或对象中的属性,需要使用deep,即深度监听。

  在对象中层层遍历,并在监听对象上的每一个属性上都添加监听,当然这样也会损耗性能

watch: {
    valueObj:{
                handler(newVal,oldVal){
                    this.value = newVal + ddd'
                },
                deep:true
           }
    }, 
  
或者:直接监听属性,避免给所有属性监听而损耗性能。
  watch: {
    'valueObj.value2':{
                handler(newVal,oldVal){
                    this.value = newVal + 'eee'
                },
           immediate: true, 
                  deep:true
           }
    },

  

5、watch监听路由

watch: {
    '$route'(to,from){
      console.log(to);   //to表示去往的界面
      console.log(from); //from表示来自于哪个界面
      if(to.path=="/home"){
        console.log("路由跳转home");
      }
    }
  },

  

 

posted @   iTao0128  阅读(3128)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示