vue watch

149 阅读1分钟

Vue Watch --笔记

用来监听单一数据,仅在数据发生变化时候才执行

  • data内部的数据,
  • 父组件传来props中的数据
  • 监听路由router
//语法
watch: {
    key1: function(newVal, oldVal) {
        console.log(newVal, oldVal)
    },
    key2:{
        handler: function(newVal, oldVal) {
            console.log(newVal, oldVal)
        },
        deep: true  //深度监听,用于当监听变量是一个对象时候使用
    }
}
  • demo
<template>
  <div class="parent">
    {{msg}}
    <div>
    	<input type="text" v-model="obj1.user">
    </div>
  </div>
</template>

<script>

export default {
  name: 'parent',
  data() {
    return {
      msg: 'hello!',
      obj1: {
          user: '小虎'
      }
    }
  },
  methods: {
  },
  watch: {
      msg: function (newVal, oldVal) {
          console.log(newVal, oldVal)
      },
      obj1: {
          handler: function(newVal, oldVal) {
            console.log(newVal, oldVal)
        },
        deep: true  //深度监听,用于当监听变量是一个对象时候使用
      },
      '$router.path'(newVal, oldVal) {
          console.log(newVal, oldVal)  //可用于监听路由
      }
  }
}
</script>