需求:每次进入页面都要获取到值,涉及到切换路由,页面不会重新渲染,所以要放到 activated什么周期函数里面,infoStepTwoRuleForm是从本地获取的对象,对象中的.time_frame_data是数组,里面存放了上一步全部的时间段的信息,当修改值的时候需要调用一个方法,且只希望调用一次 vue2
activated(){
// 每次进入页面都需要
if (localStorage.getItem('infoStepTwo')) {
this.infoStepTwoRuleForm = JSON.parse(localStorage.getItem('infoStepTwo'))
// 添加监听器 当自定义时间段改变的时候,需要重新调用一下添加资源位的数据和定位人群列表数据
const unwatch = this.$watch('infoStepTwoRuleForm.time_frame_data', {
deep: true,
handler: function(newVal, oldVal) {
let ischange=false
newVal.forEach((newObj, index) => {
if(!ischange){
let oldObj = oldVal[index];
for (let key in newObj) {
if (newObj[key] !== oldObj[key] && !ischange) {
ischange=true
this.$refs.addResourceDrawer.getResourceData();
unwatch(); // 取消观察器
return;
}
}
}
});
}
});
}
// 重新覆盖资源位和定向人群
this.changeStuOpProResourcesAndPeopleList()
},