偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

前端架構(gòu)師成長之路:分享 6 個(gè)實(shí)用的 Vue 技巧

開發(fā) 前端
Vue 已經(jīng)成為很多公司前端項(xiàng)目的首選框架,而要成為一個(gè)會用 Vue 的開發(fā)者并不需要花太多時(shí)間和精力去學(xué)習(xí)大的概念,但作為成為一個(gè)更高級的開發(fā)者就需要去深入框架和基礎(chǔ)知識的學(xué)習(xí)。本文跟分享幾個(gè)在Vue 項(xiàng)目開發(fā)中可以用到的小技巧。

 Vue 已經(jīng)成為很多公司前端項(xiàng)目的首選框架,而要成為一個(gè)會用 Vue 的開發(fā)者并不需要花太多時(shí)間和精力去學(xué)習(xí)大的概念,但作為成為一個(gè)更高級的開發(fā)者就需要去深入框架和基礎(chǔ)知識的學(xué)習(xí)。本文跟分享幾個(gè)在Vue 項(xiàng)目開發(fā)中可以用到的小技巧。

[[418866]]

1. 使用 prop 限制屬性列表

Vue 讓自定義組件變得容易,在自定義組件的時(shí)候難免不需要傳值,建議使用 prop 定義屬性,并使用屬性中的 validator 來為屬性定義合法性規(guī)則:

  1. <template> 
  2.     <div></div> 
  3. </template> 
  4. <script> 
  5. export default { 
  6.     name"QtCardBox"
  7.     props: { 
  8.         content: { 
  9.             type: String, 
  10.         }, 
  11.         style: { 
  12.             type: String, 
  13.             validator: (s) => ["boxShadow""rounded"].includes(s), 
  14.         }, 
  15.     }, 
  16. }; 
  17. </script> 

 

這個(gè)validator 函數(shù)接受 prop 值,驗(yàn)證并返回 true 或 false 。

如實(shí)例中的 Card 組件,限制其樣式的可選選項(xiàng),如 陰影 或者 圓角。還有按鈕類型或警報(bào)類型(信息、成功、危險(xiǎn)、警告)是一些最常見選線,使用validator 來限制屬性值的合法性。

2. 使用引號 watch 嵌套值

可以輕松地直接查看嵌套值,只需使用引號:

 

  1. watch: { 
  2.     "$route.query.id"() { 
  3.         // ... 
  4.     }, 
  5. }, 

 

這對于處理深度嵌套的對象非常有用!

3. 錯誤(警告)處理

為 Vue 中的錯誤和警告提供自定義處理程序:

  1. // Vue 3 
  2. const app = createApp(App); 
  3. app.config.errorHandler = (err) => { 
  4.     console.error(err); 
  5. }; 
  6.  
  7. // Vue 2 
  8. Vue.config.errorHandler = (err) => { 
  9.     console.error(err); 
  10. }; 

 

Bug 跟蹤服務(wù)可以跟蹤記錄處理程序中的錯誤,也可以使用它們更優(yōu)雅地處理錯誤,以獲得更好的UX。如有興趣,可以參閱《一種Vue應(yīng)用程序錯誤/異常處理機(jī)制》。

4. 使用模板標(biāo)簽進(jìn)行分組

template 標(biāo)簽可以在模板內(nèi)的任何地方使用,以更好地組織代碼??梢杂盟鼇砗喕?v-if 和 v-for 邏輯,來看下面的代碼:

  1. <template> 
  2.     <div class="card"
  3.         <h3> 
  4.             {{ title }} 
  5.         </h3> 
  6.         <h4 v-if="expanded"
  7.             {{ subheading }} 
  8.         </h4> 
  9.         <div v-if="expanded" class="card-content"
  10.             <slot /> 
  11.         </div> 
  12.         <ActionShare v-if="expanded" /> 
  13.     </div> 
  14. </template> 

從上面代碼看,一堆元素被顯示和隱藏在一起,如在更大、更復(fù)雜的組件上,這可能是糟糕的表現(xiàn)??梢允褂?template 標(biāo)簽對這些元素進(jìn)行分組:

  1. <template> 
  2.     <div class="card"
  3.         <h3> 
  4.             {{ title }} 
  5.         </h3> 
  6.         <template v-if="expanded"
  7.             <h4> 
  8.                 {{ subheading }} 
  9.             </h4> 
  10.             <div class="card-content"
  11.                 <slot /> 
  12.             </div> 
  13.             <ActionShare /> 
  14.         </template> 
  15.     </div> 
  16. </template> 

5. 從組件外部調(diào)用方法

通過 ref 可以從組件外部調(diào)用組件內(nèi)的方法,在代碼和邏輯上更加清晰?,F(xiàn)在假如有一個(gè) Form 表單組件,對于新增或者編輯都是使用同一個(gè)表單組件,就會涉及初始化的問題,下面來看看代碼:

組件代碼,其邏輯這里就忽略。

  1. <template> 
  2.     <div></div> 
  3. </template> 
  4. <script> 
  5. export default { 
  6.     name"QtForm"
  7.     methods: { 
  8.         init(options) {}, 
  9.     }, 
  10. }; 
  11. </script> 

 

調(diào)用 From 組件,如下:

  1. <template> 
  2.     <QtForm ref="dataForm" /> 
  3. </template> 
  4. export default { 
  5.     methods: { 
  6.         showForm(){ 
  7.             this.$refs.dataForm.init({action:"add"}); 
  8.         } 
  9.     }, 
  10. }; 
  11. </script> 

 

 

6. 在 v-for 中解構(gòu)

在模板中使用 v-for 遍歷輸出數(shù)據(jù),可以在其使用解構(gòu)語法。

 

 

  1. <li 
  2.   v-for="{ title, id } in articles" 
  3.   :key="id" 
  4.   {{ title }} 
  5. </li> 

 

 

或者數(shù)據(jù)數(shù)據(jù)遍歷,需要獲取索引,如下:

 

 

  1. <li 
  2.   v-for="( item, index ) in articles" 
  3.   :key="index" 
  4.   {{ index }} 
  5. </li> 

 

 

總結(jié)

Vue 項(xiàng)目開發(fā)入門容易,但要做到最佳實(shí)踐,可以在項(xiàng)目開發(fā)過程中積累。

責(zé)任編輯:華軒 來源: 今日頭條
相關(guān)推薦

2013-04-15 10:09:18

Web架構(gòu)師

2013-04-15 11:08:00

架構(gòu)師Web

2013-04-19 15:12:17

架構(gòu)師WEB架構(gòu)師

2023-08-20 12:21:18

軟件開發(fā)架構(gòu)設(shè)計(jì)

2012-04-05 10:25:02

WEB架構(gòu)師

2012-03-31 10:00:05

WEB架構(gòu)師

2012-04-09 09:41:24

WEB架構(gòu)師

2019-07-16 11:15:04

JavaScriptCSS數(shù)據(jù)庫

2012-08-04 16:02:00

架構(gòu)師

2019-07-23 18:15:26

技術(shù)大數(shù)據(jù)數(shù)據(jù)庫

2016-01-04 14:48:09

七牛

2020-06-23 08:28:26

前端開發(fā)技巧

2023-07-24 15:24:00

前端CSS 技巧

2020-05-27 11:25:48

開發(fā)技能代碼

2017-10-30 17:25:11

javascript

2018-02-06 09:58:48

架構(gòu)師MVCiOS

2021-10-25 09:41:04

架構(gòu)運(yùn)維技術(shù)

2020-06-28 14:15:52

前端架構(gòu)師互聯(lián)網(wǎng)

2021-03-12 10:01:33

Sudo命令Linux

2012-08-13 16:48:31

架構(gòu)師
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號