隨著 vuejs 的使用越來越廣泛,出現了幾種最佳實踐並逐漸成為標準。在本文中,主要分享在平時開發中一些有用資源和技巧,廢話少說,我們開始吧。
在需要操縱資料時,將key
屬性與v-for
指令一起使用可以讓程式保持恆定且可**。
這是很有必要的,這樣vue就可以跟蹤元件狀態,並對不同的元素有乙個常量引用。在使用動畫或vue轉換時,key 非常有用。
如果沒有key
,vue只會嘗試使dom盡可能高效。這可能意味著v-for
中的元素可能會出現亂序,或者它們的行為難以**。如果我們對每個元素都有唯一的鍵引用,那麼我們可以更好地**vue
應用程式將如何精確地處理dom
操作。
在發出定製事件時,最好使用短橫線命名,這是因為在父元件中,我們使用相同的語法來偵聽該事件。
因此,為了確保我們各元件之間的一致性,並使您的**更具可讀性,請在兩個地方都堅持使用短橫線命名。
this.$emit('close-window')
// 在父元件中
最佳做法只是遵循每種語言的約定。在 js 中,駝峰式宣告是標準,在html中,是短橫線命名。因此,我們相應地使用它們。
幸運的是,vue 已經提供了駝峰式宣告和短橫線命名之間轉換,因此除了實際宣告它們之外,我們不必擔心任何事情。
不好的做法
props:
好的做法
props:
宣告元件data
時,data
選項應始終返回乙個函式。如果返回的是乙個物件,那麼該data
將在元件的所有例項之間共享。
// 不好的做法
data:
但是,大多數情況下,我們的目標是構建可重用的元件,因此我們希望每個元件返回乙個惟一的物件。我們通過在函式中返回資料物件來實現這一點。
// 好的做法
data ()
}
為了過濾陣列中的元素,我們很容易將v-if
與v-for
在同個元素同時使用。
// 不好的做法
問題是在 vue 優先使用v-for
指令,而不是v-if
指令。它迴圈遍歷每個元素,然後檢查v-if
條件。
this.products.map(function (product)
})
這意味著,即使我們只想渲染列表中的幾個元素,也必須遍歷整個陣列。
這對我們來當然沒有任何好處。
乙個更聰明的解決方案是遍歷乙個計算屬性,可以把上面的例子重構成下面這樣的:
return this.products.filter(function (product) )
}}這麼做有幾個好處:
可以這條是很重要,為什麼?
在設計大型專案時,很容易忘記用於props的確切格式、型別和其他約定。如果你在乙個更大的開發團隊中,你的同事不會讀心術,所以你要清楚地告訴他們如何使用你的元件。
因此,我們只需編寫props驗證即可,不必費力地跟蹤元件來確定props的格式
從vue文件中檢視此示例。
props:
}}
元件的通用命名約定是使用駝峰或短橫線。無論我們使用哪個,最重要的是始終保持一致。我認為駝峰方式 效果最好,因為大多數ide自動完成功能都支援它。
# 好的做法
mycomponent.vue
mycomponent.vue
mycomponent.vue
# 不好做法
mycomponent.vue
根據vue樣式指南,基本元件是僅包含以下內容的元件:
basebutton.vue
baseicon.vue
baseheading.vue
該命名約定的目的是使基本元件按字母順序分組在檔案系統中。另外,通過使用webpack匯入功能,我們可以搜尋與命名約定模式匹配的元件,並將所有元件自動匯入為vue專案中的全域性變數。
與基本元件類似,單例項元件(每個頁面使用一次,不接受任何prop)應該有自己的命名約定。這些元件特定於我們的應用,通常是footer
,header
或sider
。
該元件只能有乙個啟用例項。
theheader.vue
thefooter.vue
thesidebar.vue
thepopup.vue
在vue開發人員中,一種常見的技術是使用指令的簡寫。例如:
在你的vue專案中使用這些縮寫是很好的。但是要在整個專案中建立某種約定,總是使用它們或從不使用它們,會使我們的專案更具內聚性和可讀性。
vue開發人員經常犯的乙個錯誤是他們不必要地在created
和watch
中呼叫方法。其背後的想法是,我們希望在元件初始化後立即執行watch
。
不好的做法
created: () ,
methods:
},watch ()
}
但是,vue為此提供了內建的解決方案,這是我們經常忘記的vuewatch
屬性。
我們要做的就是稍微重組watch
並宣告兩個屬性:
1.handler (newval, oldval)-
這是我們的watch方法本身。
immediate: true
- 代表如果在 wacth 裡宣告了之後,就會立即先去執行裡面的handler
方法,如果為false
就跟我們以前的效果一樣,不會在繫結的時候就執行
好的做法
methods:
},watch ()
}}
在模板中新增盡可能多的內聯功能是很自然的。但是這使得我們的模板不那麼具有宣告性,而且更加複雜,也讓模板會變得非常混亂。
為此,讓我們看看vue樣式指南中另乙個規範化字串的示例,看看它有多混亂。
不好的做法
).join(' ')
}}
基本上,我們希望模板中的所有內容都直觀明了。為了保持這一點,我們應該將複雜的表示式重構為適當命名的元件選項。
分離複雜表示式的另乙個好處是可以重用這些值。
/、 好的做法
}// the complex expression has been moved to a computed property
computed: ).join(' ')
}}
這是12個最常見的最佳實踐,它們將使我們的vue**更易於維護、可讀性更好、更專業。希望這些技巧對您有用(因為它們絕對是我一直想記住的東西)。 12種使用Vue的最佳做法
隨著 vue js 的使用越來越廣泛,出現了幾種最佳實踐並逐漸成為標準。在本文中,主要分享在平時開發中一些有用資源和技巧,廢話少說,我們開始吧。在需要操縱資料時,將key屬性與v for指令一起使用可以讓程式保持恆定且可 這是很有必要的,這樣vue就可以跟蹤元件狀態,並對不同的元素有乙個常量引用。在...
12 種使用 Vue 的最佳實踐標準
隨著 vuejs 的使用越來越廣泛,出現了幾種最佳實踐並逐漸成為標準。在本文中,主要分享在平時開發中一些有用資源和技巧,廢話少說,我們開始吧。在需要操縱資料時,將key屬性與v for指令一起使用可以讓程式保持恆定且可 這是很有必要的,這樣vue就可以跟蹤元件狀態,並對不同的元素有乙個常量引用。在使...
異常的最佳做法
設計良好的應用處理異常和錯誤以防止應用崩潰。本文描述處理和建立異常的最佳做法。處理異常 建立和引發異常 以下列表包含建立自己的異常和引發異常時應遵循的準則。在每個異常中都包含乙個本地化描述字串。使用者看到的錯誤訊息派生自引發的異常的描述字串,而不是派生自異常類。通過程式設計方式使用正確的錯誤訊息 包...