vue watch中deep和immediate的用法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue watch中deep和immediate的用法相关的知识,希望对你有一定的参考价值。

参考技术A 当值第一次绑定时watch不会执行监听函数,当值改变时才会执行,如果想要最初绑定知识也执行需要设置immediate属性为true。immediate表示在watch中首次绑定的时候,是否执行handler,值为true则表示在watch中声明的时候,就立即执行handler方法,值为false,则和一般使用watch一样,在数据发生变化的时候才执行handler。

监听对象属性值发生变化是需要设置deep为true,deep表示深度监听。数组不需要深度监听;在watch中不要使用箭头函数,因为箭头函数中的this是指向当前作用域。

vue2.0 watch里面的 deep和immediate作用

deep,默认值是 false,代表是否深度监听。
immediate:true代表如果在 wacth 里声明了之后,就会立即先去执行里面的handler方法,如果为 false就跟我们以前的效果一样,不会在绑定的时候就执行。

computed: {
  btnObj() {
    const { sign_img, check } = this
    return {
      sign_img,
      check
    }
  }
},
watch: {
  btnObj: {
    handler: function(newVal,oldVal) {
      if(!!this.sign_img && this.check){
        this.submit_flag = true
        this.sign_flag = ‘1‘
      }else{
        this.submit_flag = false
        this.sign_flag = ‘0‘
      }
    },
    deep: true,
    immediate: true
  }
}

  

以上是关于vue watch中deep和immediate的用法的主要内容,如果未能解决你的问题,请参考以下文章

vue2.0 watch里面的 deep和immediate作用

Vue-watch 中的 deep 和 immediate 的理解

vue.js监听属性watch(handler方法immediate属性deep属性)

vue3 watch监听 (immediate / deep / watchEffect)

vue3 watch监听 (immediate / deep / watchEffect)

vue的watch中的immediate什么意思