欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

watch 侦听器

程序员文章站 2022-05-16 22:13:35
...

vue官方文档-watch讲解

侦听字符串侦听对象的属性 的区别

第 1 章:watch 侦听器 基本用法

<template>
  <div class="watch">
    <input type="text" v-model="name" />
    <p>{{ name }}</p>
    <input type="text" v-model="info.age" />
    <p>{{ info }}</p>
  </div>
</template>

<script type="text/javascript">
export default {
  data () {
    return {
      name: '张三',
      info: {
        age: 20
      }
    }
  },
  watch: {
    // 情形一:监听字符串,新旧值都可以打印
    name: function (newValue, oldValue) {
      console.log('name', newValue, oldValue);
    },
    /**
     *  情形二:深度监听对象里面的属性,只能打印新值,拿不到旧值
     *  因为对象是引用类型,两个对象都是同一个引用地址
     *  所以打印的结果都是一样的
     */
    info: {
      handler: function (newValue, oldValue) {
        console.log('新值age', newValue);
        console.log('旧值age', oldValue); // oldValue 和 newValue 一样
      },
      deep: true
    }
  }
}
</script>