成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

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

 Vue 已經(jīng)成為很多公司前端項(xiàng)目的首選框架,而要成為一個(gè)會(huì)用 Vue 的開發(fā)者并不需要花太多時(shí)間和精力去學(xué)習(xí)大的概念,但作為成為一個(gè)更高級的開發(fā)者就需要去深入框架和基礎(chǔ)知識(shí)的學(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. 使用引號(hào) watch 嵌套值

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

 

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

 

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

3. 錯(cuò)誤(警告)處理

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

  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ù)可以跟蹤記錄處理程序中的錯(cuò)誤,也可以使用它們更優(yōu)雅地處理錯(cuò)誤,以獲得更好的UX。如有興趣,可以參閱《一種Vue應(yīng)用程序錯(cuò)誤/異常處理機(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)的方法,在代碼和邏輯上更加清晰。現(xiàn)在假如有一個(gè) Form 表單組件,對于新增或者編輯都是使用同一個(gè)表單組件,就會(huì)涉及初始化的問題,下面來看看代碼:

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

  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)師

2012-08-04 16:02:00

架構(gòu)師

2019-07-16 11:15:04

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

2019-07-23 18:15:26

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

2016-01-04 14:48:09

七牛

2023-07-24 15:24:00

前端CSS 技巧

2020-05-27 11:25:48

開發(fā)技能代碼

2020-06-23 08:28:26

前端開發(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ù)

2021-03-12 10:01:33

Sudo命令Linux

2020-06-28 14:15:52

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

2012-08-13 16:48:31

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

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

主站蜘蛛池模板: 91久色| 91免费看片| 精精久久| 国产精品18久久久 | 一区二区不卡 | www.操com| 欧美日在线| 日韩欧美字幕 | 国产一区二区三区四区五区加勒比 | 日本一区二区高清不卡 | 三级成人片 | 国产高清精品在线 | 亚洲在线一区二区 | 久久亚洲综合 | 欧美日韩高清 | 久久99精品久久久久久秒播九色 | 日本精品一区二区在线观看 | 日韩在线一区二区 | 91色综合 | 久久精品99国产精品日本 | 91资源在线 | 久久亚洲国产精品日日av夜夜 | 久久99久久99精品免视看婷婷 | 亚洲精品字幕 | 精品国产乱码一区二区三区 | 午夜影院网站 | 久久久久久亚洲精品 | 毛片网站在线观看 | 亚洲欧美一区二区在线观看 | 中文字幕在线免费观看 | 日韩精品 电影一区 亚洲 | 香蕉大人久久国产成人av | 成人欧美一区二区 | 精品入口麻豆88视频 | 丁香五月网久久综合 | 91亚洲国产成人久久精品网站 | 在线观看视频91 | 免费黄色成人 | www.一区二区三区.com | 国产91久久久久久 | 99re在线视频观看 |