vue项目实战之使用watch监听数据

  • 什么时候使用watch

    watch是vue项目中经常会使用的vue实例方法 当项目中遇到当一个数据发生改变导致其他数据发生改变的时候使用watch

    特点

    1. watch里面的方法默认是不会执行的 只有依赖的数据发生改变的时候才会执行
    2. watch的方法第一次不会执行 使用 immediate
    3. 常用在监听数据变化 发送数据请求
    4. watch默认只能监听一层数据结构,当子元素中还有子元素的时候就会监听不到 deep
    5. 在某些清空下watch会监听不到
      • 利用索引直接改变数组值
      • 修改数据的长度
      • 使用非变异的方法 生成一个新的属性的时候
  • 如何使用watch监听事件对象

watch: {
	属性: {
   	handler(newValue, oldValue){
   			...
   	},
   	deep: true,  //深度监听
   	immediate: true,  //立即执行
   }
}
  • 具体操作如何写

  1. 监听路由
watch: {
   '$route'(){
   		...
   }
}
  1. 监听属性

watch: {
    uploadList: {
      deep: true,
      handler: function(newVal, oldVal) {
        this.$nextTick(function() {
          this.$emit("on-change", this.transferImgs(newVal));
        });
      },
      immediate: true
    },
   },

监听vuex中的数据

'$store.state.site': {
	handler(){}
}

同时监听多个数据

//首先在computed中 将需要监听的设置为一个对象
computed: {
	mixObj() {
		const { data1, data2 } = this
		return {
			data1,
			data2
		}
	}
}

//然后在watch中监听
watch: {
	mixObj: {
		handler(val) {
			console.log(val)
		}
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值