屎山代码优化(

321 阅读1分钟

维护老项目,就只是在上面添砖加瓦,但是重构老项目,就相当于你把他吃了,再拉一坨新的出来

目前遇到的问题如下:

1、多层if else

list.forEach(item => {
    if(item.type === 'excel'){
        item.icon = require('文件路径')
    }else if( .... ){
        // 重复以上步骤
    }
}

像上面这种多层if去判断同一个变量的时候,可以有以下几种方法

// 可以使用switch
switch(item.type){
    case: 'excel':
        item.icon = require('文件路径')
        return
    //重复以上步骤,记得加default
}


// 或者用对象或者map映射
// ↓↓↓↓↓↓对象↓↓↓↓↓↓
const file = {
    excel: '图片路径'
}
const defaultFile = '默认图片'
const url = file[item.type] || defaultFile

// ↓↓↓↓↓↓map↓↓↓↓↓↓
const file = new Map([
    ['excel','图片路径']
])
const defaultFile = '默认图片'
const url = file.get(item.type) || defaultFile

// ↓↓↓↓↓↓关于引入↓↓↓↓↓↓
item.icon = require('@/assets/file' + url) 
// 这里如果直接写url会报错,原因是require引用的是path,前面要固定一下