官术网_书友最值得收藏!

Optimizing the code

As we wrote the code while we were figuring out the problem, there comes a point when you need to take a step back and look at your code to optimize it. This could include reducing the number of variables and methods or creating methods, to reduce repeating functionality. Our current Vue app looks like the following:

      const app = new Vue({
el: '#app',
data: { people: [...],
currency: '$',
filterField: '', filterQuery: '', filterUserState: '' }, methods: { activeStatus(person) { return (person.isActive) ? 'Active' :
'Inactive'; },
activeClass(person) { return person.isActive ? 'active' :
'inactive'; },
balanceClass(person) { let balanceLevel = 'success'; if(person.balance < 2000) { balanceLevel = 'error'; } else if (person.balance < 3000) { balanceLevel = 'warning'; } let increasing = false, balance = person.balance / 1000; if(Math.round(balance) ==
Math.ceil(balance)) { increasing = 'increasing'; } return [balanceLevel, increasing]; },
formatBalance(balance) { return this.currency + balance.toFixed(2); },
formatDate(date) { let registered = new Date(date); return registered.toLocaleString('en-US'); },
filterRow(person) { let result = true; if(this.filterField) { if(this.filterField === 'isActive') { result = (typeof this.filterUserState
=== 'boolean') ? (this.filterUserState
=== person.isActive) : true; } else { let query = this.filterQuery, field = person[this.filterField];
if(typeof field === 'number') { query.replace(this.currency, '');
try { result = eval(field + query); } catch(e) {}
} else { field = field.toLowerCase(); result =
field.includes(query.toLowerCase()); }
} } return result; },
isActiveFilterSelected() { return (this.filterField === 'isActive'); }
} });

Looking at the preceding code, there are some improvements we can make. These include:

  • Reducing the number of filter variables and grouping logically
  • Combining the format functions
  • Reducing the number of hard-coded variables and properties
  • Re-ordering methods into a more logical order

We'll cover these points inpidually so we have a clean code base for building components with.

主站蜘蛛池模板: 古丈县| 东城区| 丽江市| 泊头市| 拜泉县| 岳池县| 卫辉市| 铅山县| 潮安县| 开阳县| 洪泽县| 疏附县| 马龙县| 高邮市| 临猗县| 沙雅县| 北川| 垫江县| 淮南市| 漳平市| 广平县| 银川市| 松阳县| 泰来县| 平江县| 济源市| 稷山县| 五峰| 盐山县| 瑞安市| 武定县| 金阳县| 崇文区| 宁阳县| 玛沁县| 新乐市| 双流县| 综艺| 天祝| 镇康县| 哈巴河县|