🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
`审核人:白占宁` `被审核代码负责人:尹帮会 & 欧阳德才` `代码地址:https://192.168.1.240:8443/svn/repos/yunwei/src` ### 存在的问题 #### 1、缓存多次使用到的变量 ``` dealData: function(data) { faultProfile.init(data.result.faultProfile) faultType.init(data.result.faultType) newFault.init(data.result.newFault) detachFault.init(data.result.detachFault) } ``` 解决方案:缓存`data.result`,如下所示: ``` dealData: function(data) { var result = data.result faultProfile.init(result.faultProfile) ... } ``` #### 2、避免定义不必要的变量 ``` // 接口参数 var startTime = "" var endTime = "" // 接口参数 var param = { startTime: startTime, endTime: endTime } ``` 解决方案:删除startTime和endTime。 ``` // 接口参数 var param = { startTime: '', endTime: '' } ``` #### 3、使用var定义变量 ``` // 渲染数据 tpl = require('../../components/troubleTable/newFault.tpl') template = Handlebars.compile(tpl); ``` 解决方案:不使用var,直接定义变量,将导致该变量成为window的一个属性,即window.tpl和tpl是同一个变量,容易造成全局污染。 #### 4、JS中建议使用单引号而不是双引号 ``` $(".frontEndPercent").html('50%') $(".systemPercent").html('50%') ``` #### 5、注释与内容不符 ``` // 前端分页 var pageArray = [] ``` 解决方案:注释内容应明确其功能及作用。 #### 6、初始加载的代码放到初始化方法中 ``` //时间轴选择界面 date.initPicker('month') $('.layui-form-pane').find('.submit-btn').on('click', function() { $('.layui-form-pane').find('.close-btn').trigger('click') }) ``` 解决方案:将以上代码放到init方法中。 #### 7、调用不必要的方法 ``` $('.environment-params').empty().html(template(data)) ``` 解决方案:不用调用empty方法,因为调用html方法都会先将原来内容清空的。 #### 8、不要出现硬编码,且要说明其含义 ``` if (d.value > 22.8) { return "url(#alarmGradient)" } else { return "url(#normalGradient)" } ``` 解决方案:定义为常量,并且说明其代表的含义。 #### 9、画图表的代码不要和业务代码混到一起,单独封装到一个文件中。 #### 10、可以优化的方法调用 ``` $('.date-container').empty().append(dateHTML) ``` 解决方案:`$('.date-container').html(dateHTML)`。 #### 11、@德才,参考其他模块代码,先重构下代码结构。