Vue CLI 帶有一個嚴格模式,它可以幫助開發(fā)人員自動檢測和修復(fù)代碼中的一些常見錯誤。嚴格模式在以下三個方面起作用:
1. 阻止直接變異state 2. 執(zhí)行更嚴格的代碼范式 3. 預(yù)測錯誤
第一條規(guī)則確保我們不要直接更改Vue實例的狀態(tài)。狀態(tài)應(yīng)該通過調(diào)用 mutation 方法來更改。如果我們試圖直接更改狀態(tài),嚴格模式將拋出異常,提醒我們檢查代碼。這可以避免在調(diào)試期間出現(xiàn)一些常見的問題,例如對狀態(tài)的不正確修改,從而導(dǎo)致意外的行為。
state.counter = state.counter + 1; // 錯誤的方式 commit('increment'); // 正確的方式
嚴格模式還規(guī)定了更嚴格的代碼范式。例如,在編寫計算屬性和組件時,我們需要確保它們是具有副作用的,這意味著我們應(yīng)該盡可能地將它們聲明為純函數(shù)。嚴格模式將確保我們遵守這些最佳實踐。
// 純函數(shù),沒有副作用 computed: { doubleCounter() { return this.counter * 2; } } // 有副作用的計算屬性 computed: { doubleCounter() { this.counter = this.counter + 1; // incorrectly modifies state return this.counter * 2; } }
最后,嚴格模式不僅可以檢測代碼中的錯誤,還可以預(yù)測到將來可能會發(fā)生的錯誤。例如,如果我們試圖在mutations之外更改狀態(tài),則嚴格模式將拋出錯誤
// 錯誤的方式 async function fetchData() { const data = await fetchSomething() state.counter = data; } // 正確的方式 async function fetchData() { const data = await fetchSomething() commit('setData', data); }
總之,使用Vue CLI的嚴格模式可以確保代碼具有一定的標準性,并提高代碼的可調(diào)試性。雖然嚴格模式可能會增加一些代碼的開銷,但通常是值得的。