vue2 中有多个相同的方法,但是处理的数据不一样,怎么优化
比如有drawRoom,drawDesk,drawOffice类似的方法,只是处理的数据不一样,怎么通过参数来处理不同的情况
比如参数type是desk,我就处理this.deskData,type是room,我就处理this.roomData,即需要一个转义的写法,我就不用重复写类似的方法了。
vue2 中有多个相同的方法,但是处理的数据不一样,怎么优化
比如有drawRoom,drawDesk,drawOffice类似的方法,只是处理的数据不一样,怎么通过参数来处理不同的情况
比如参数type是desk,我就处理this.deskData,type是room,我就处理this.roomData,即需要一个转义的写法,我就不用重复写类似的方法了。
可以使用一个通用的方法,然后根据参数来决定使用哪个数据进行处理。例如:
draw(type, filterData, hasData = true) {
if (!hasData) {
return;
}
let data;
switch (type) {
case 'desk':
data = this.deskData;
break;
case 'room':
data = this.roomData;
break;
case 'office':
data = this.officeData;
break;
}
let that = this;
if (filterData && filterData.length > 0) {
filterData.forEach((si, sk) => {
data.forEach((item, k) => {
// 处理数据
});
});
} else {
// 其他情况的处理
}
}
然后在调用这个方法的时候,传入不同的参数即可。例如:
this.draw('desk', filterData);
或者
this.draw('office', filterData);
望采纳。