watch监听组件中的任何东西

监听data数据的变化

watch:{
    data(oldVal, newVal) {
        console.log(oldVal, newVal)
    }
}

监听list数据的变化 深度监听

data() {
    return {
        list: {
            'id': 1,
            'type': 0
        },
        number: 0
    }
},
watch:{
    list: {
        handler(newVal) {
            console.log(newVal)
        },
        deep: true
    }
}

监听计算属性

computed: {
    computedProperty () {
      return this.id ? '是' : '否'
    }
  }
watch: {
    computedProperty (newVal) {
      console.log(1)
    }
  }

监听props传入的值

props: {
    flag: {
      type: Boolean,
      default: false
    }
},
watch: {
    flag (newVal) {
      console.log(1)
    }
}

监听对象属性 深度监听

watch: {
	'user.name': {
		handler(newVal, oldVal){
			console.log(newVal)
		}
		deep: true
	}
}

监听路由参数的变化

vue-router导航切换时,如果两个路由渲染同一个组件,组件会重用,组件的生命周期钩子(created)不会在被调用,使组件的部分数据无法根据path的改变而更新

因此我们可以在watch中监听路由的变化,当路由改变时,重新调用created中的内容

watch: {
    $route (newVal) {
      this.List()
    }
  }

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值