VUE技巧(一)

165 阅读1分钟

Vue中watch与Vuex

A页面设置keepAlive为true的时候,

A页面watch到Vuex中的变量xxx,

当A页面跳转到B页面的时候,B页面修改Vuex中的变量xxx,

会触发A页面中的xxx watch

watch开启深度监听

开启深度监听之后,watch无法获取到oldValue,oldValue会和newValue的值一样。

解决方案

将监听的值装换成json格式,然后监听json,然后再转换成对象

computed:{
		taskHomeDeepInfo() {
      return JSON.stringify(this.taskHomeInfo)
    },
}
watch:{
		taskHomeDeepInfo: {
      async handler(newVal, oldVal) {
        const nVal = JSON.parse(newVal)
        const oVal = JSON.parse(oldVal)
      },
      deep: true
  	},
}