- Vue.js 2.x by Example
- Mike Street
- 297字
- 2021-07-02 20:00:29
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.
推薦閱讀
- GAE編程指南
- Leap Motion Development Essentials
- Apache Spark Graph Processing
- Java持續(xù)交付
- SAS數(shù)據(jù)統(tǒng)計分析與編程實踐
- PHP+MySQL+Dreamweaver動態(tài)網(wǎng)站開發(fā)實例教程
- Ext JS 4 Web Application Development Cookbook
- Gradle for Android
- Visual C++開發(fā)入行真功夫
- Learning Material Design
- JavaScript程序設計(第2版)
- Vue.js應用測試
- JBoss:Developer's Guide
- Android系統(tǒng)下Java編程詳解
- 讀故事學編程:Python王國歷險記