zoukankan      html  css  js  c++  java
  • vuejs 深度监听

    data: {
        obj: {
          a: 123
        }
      },

    监听obj中a属性

    watch: {
      'obj.a': {
        handler(newName, oldName) {
          console.log('obj.a changed');
        }
      }
    }

    深度监听

    watch: {
      obj: {
        handler(val, olVal) {
          console.log('我变化了', val, olVal)
        },
        immediate: true,
        deep: true
      }
    }

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

    deep,默认值是 false,代表是否深度监听

    如果obj发生了变化,就会打印出val,olVal,但是他们打印出来的结果都是一样的,因为数据同源。虽然可以监听到他的变化,但是要比较数据差异就不行了。如果想要得到不同的值可以结合计算属性。

    data: {
      obj: {
        a: 123
      }
    },
    watch: { 
      testDataNew: {
        handler: (val, olVal)
    => {
          console.log(
    '我变化了', val, olVal)
        },
        deep:
    true
      }
    },
    computed: {
      testDataNew() {
        
    return JSON.parse(JSON.stringify(this.obj))
      }
    }
  • 相关阅读:
    网络编程之Tcp,udp
    网络编程简介
    面向对象之高级篇 反射,元类
    面向对象 高级篇
    面向对象,继承
    初识面向对象
    包 hashlib,logging
    模块
    Dango生命周期回顾与forms组件
    Django中auth登录、注册、修改密码、退出、ORM自关联
  • 原文地址:https://www.cnblogs.com/ckmouse/p/11543664.html
Copyright © 2011-2022 走看看