此段代码适用于vue2.x store3.0
作用对象: 数组
用处: 实时监听数组的变化,并计算出,数组变更的两个部分:新增、去除的部分
本人将其理解成一个发布订阅者模式,store数据发布,在此文件中监听store(相当于订阅),观察到数据的变更后,进行数据筛选,从而进行不同的业务处理
/**
* @author: yuhang
* @Date: 2021-12-20 13:37:06
* @description: 根据vuex的新老值计算出新值和旧值
*/
<template>
<div></div>
</template>
<script>
export default {
data() {
return {
DataList: [],
};
},
watch: {
DataList: {
immediate: true,
deep: true,
handler(val, preval) {
this.compareData(val, preval);
},
},
},
methods: {
compareData(a, b) {
let newval = a;
let oldval = b;
let needTocreat = [];
let oldtoDestory = [];
if (!oldval || !oldval.length) {
oldval = [];
}
if (!newval || !newval.length) {
newval = [];
}
if (oldval && newval) {
// 新增的数据(数组)
needTocreat = newval.filter(m => oldval.findIndex(n => n.id === m.id) === -1);
// 删除的数据(数组)
oldtoDestory = oldval.filter(q => newval.findIndex(p => p.id === q.id) === -1);
}
this.createMarker(needTocreat);
this.destoryMarker(oldtoDestory);
},
// 新增的
createMarker(data) {
},
// 消失的
destoryMarker(data) {
},
},
};
</script>
版权声明:本文为yh8899abc原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。