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
},
}