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

對于組件的可重用性,大佬給出來6個級別的見解,一起過目一下!

開發
我們所有人都希望編寫更少的代碼,同時也要做更多的事情。為了實現這一點,我們構建了組件,以便可以多次重用它們。

 [[334363]]

我們所有人都希望編寫更少的代碼,同時也要做更多的事情。為了實現這一點,我們構建了組件,以便可以多次重用它們。

有些組件只需要基本的可重用性,而另一些則需要更復雜的重構技術,我們才能充分復用它。

這里有6個不同級別的可重用性概念,大家先來體會體會,后續更新會一個一個的講。

1.模板化

通過模板化,我們將一些重復性高的代碼包裝在其自己的組件中,而不是在周圍到處復制和粘貼代碼。

  • 當我們重用該組件(而不是直接使用代碼)時,它為我們帶來了兩個好處:
  • 將來進行更改就會容易得多,因為我們只需要在一個地方更改

我們不必記住每個重復代碼被復制到了哪些地方

這是最基本的,也是最經常談論的可重用性形式。

2. 可配置

對于某些組件,我們需要根據需求對它們的工作方式進行修改,如:

Button組件默認有一個主版本,也有一個帶有圖標版本。但我們沒有為每個版本創建全新的組件,而是指定 props 做到不同類型之間切換。

添加這些props通常不會給組件增加很大的復雜度,同時,又能給我們在使用組件方面帶來更多在的靈活性。

注意:這不同于使用prop來保存狀態或數據,比如loading prop 或disabled prop。

3.適應性

可配置的最大問題是缺乏遠見。我們需要預見將來的需求,并通過放置對應的 prop 將它們構建到組件中。

但是,如果你的組件具有足夠適應性,則無需更改組件即應對未來的需求。

為了讓我們的組件具有足夠的適應性,我們可以使用 插槽 來實現。

例如,我們可以使用默認的插槽來代替在傳入Button組件的 text :

  1. <!-- Button.vue --> 
  2. <template> 
  3.   <button 
  4.     class="btn btn--default" 
  5.     @click="$emit('click')" 
  6.   > 
  7.     <slot /> 
  8.   </button> 
  9. </template> 

現在我們不局限于傳入的類型是 string 還是 number。

如果我們想在不修改 Button 組件的情況下添加loading ,我們可以這樣做:

  1. <template> 
  2.   <Button> 
  3.     <img 
  4.       v-if="loading" 
  5.       src="spinner.svg" 
  6.     /> 
  7.     Click Me 
  8.   </Button> 
  9. </template> 

4.反轉性

除了通過插槽傳遞完整的標記塊給我們的子組件,我們還可以傳遞一組有關如何渲染的指令。

這就像我們根據食譜來做菜,而不是叫外賣。當我們遵循食譜時,需要做更多的工作,但是我們完全可以按自己的節奏來制制作, 我們可以隨時進行調整,也可以完全放棄不按食譜的流程來。

我們使用作用域插槽來為我們的組件增加更大的靈活性。

5. 擴展

通過適應性和反轉性,我們擁有必要的一些技術基礎,這些技能可以最大限度地提高組件的可重用性。

下一步是將這些技術應用于整個組件,以便我們更輕松地擴展其行為。

我們使用命名插槽在組件中添加一個或多個擴展點。僅適應性和反轉性本身給我們提供了擴展行為的一種選擇,而擁有多個擴展點則為我們提供了許多不同的選擇。

這里,我們有一個Modal組件,其中包含header,default和footer:

  1. <template> 
  2.   <div class="modal"
  3.     <slot name="header"
  4.       <h2>{{ title }}</h2> 
  5.     </slot> 
  6.  
  7.     <!-- Default slot for main content --> 
  8.     <slot /> 
  9.  
  10.     <slot name="footer"
  11.       <Button @click="closeModal"
  12.         Close 
  13.       </Button> 
  14.     </slot> 
  15.   </div> 
  16. </template> 

這是一個相當簡單的擴展示例,其中我們已經有幾個擴展該組件的選項:

  1. 只需覆蓋default slot即可添加我們的內容
  2. 可以通過插槽名來覆蓋 header 的內容
  3. 可以通過插槽名來覆蓋 footer 的內容,其內容還是以不同風格按鈕為主
  4. header和 footer的插槽更多是用于自定義

你不必擴展此組件的行為,但也可以擴展其一部分。無論哪種方式,我們都能獲得很大的靈活性和大量的代碼重用性。

6. 嵌套

在擴展之上更高級重用性就是嵌套, 我們可以多個基本組件為基礎, 一層嵌套一層,一開始可能聽起來很瘋狂,但它非常有用,特別是在大中型應用程序中。

我們從一個通過基礎組件開始,該組件的功能相當普遍。下一個組件就更加具體,以幾種方式擴展了基礎組件。然后不斷以前面基礎組件為底往上擴展,直到我們擁有完成實際工作的最終組件。

這類似我們從非常普通的動物(Animal )到更特定的哺乳動物(Mammal ),然后是狗(Dog ),最后止于貴賓犬(Poodle)的方式。如果我們需要的只是貴賓犬(Poodle)組件,看上去,我們整這么基礎組件就是浪費時間。但是在大型應用程序中就不一樣了,我們需要在相同的基本概念上進行多次更改,來滿足不同的個性化需求,這時這種以基礎組件嵌套的思想就很重要。

我們可以擴展犬類(Dog)組件來獲得柯基犬(Corgi )和比格犬(Beagle)組件。或者擴展哺乳動物(Mammal )組件以獲得貓(Cat )組件,這樣就可以添加老虎(Tiger)和獅子(Lion)組件。

總結

以上是6個可重用性級別一些概述,當然很有可能會錯過一些內容,但基本是可以為我們封裝組件提供了一個大致思路,也是很不錯的方式。

人才們的 【三連】 就是小智不斷分享的最大動力,如果本篇博客有任何錯誤和建議,歡迎人才們留言,最后,謝謝大家的觀看。

作者:Michael Thiessen 譯者:前端小智 來源:news

原文:https://news.knowledia.com/US/en/the-6-levels-of-reusability-7ad7fc58842eb67fc320c8e11305e1010a11f251?source=rss

江南一點雨 本文轉載自微信公眾號「 大遷世界」,可以通過以下二維碼關注。轉載本文請聯系 大遷世界公眾號。

 

責任編輯:武曉燕 來源: 大遷世界
相關推薦

2023-06-30 08:27:20

2019-01-31 07:16:06

2022-08-29 07:48:27

文件數據參數類型

2022-12-02 14:20:09

Tetris鴻蒙

2023-06-05 14:14:21

騰訊索引面試

2020-07-23 07:51:51

Python編程語言工具

2022-11-14 08:32:51

CSS組件Box

2022-12-01 09:59:57

內核觀測性方法

2023-02-02 13:18:22

2024-01-03 08:00:00

Java軟件開發代碼

2011-07-21 13:24:14

java

2023-04-11 07:48:32

WebGLCanvas

2021-09-14 17:16:21

Java 同步工具類

2024-04-10 10:09:07

2022-05-05 12:57:40

架構

2023-10-17 07:23:00

Vue組件代碼

2024-01-24 07:24:18

物聯網通信協議IOT

2024-08-29 09:18:55

2022-08-16 07:49:48

云原生數據庫系統

2022-06-29 11:01:05

MySQL事務隔離級別
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩欧美字幕 | 国产精品免费一区二区三区四区 | 日日操日日舔 | 羞羞视频免费观 | 干干干日日日 | 国产成人99久久亚洲综合精品 | 日韩波多野结衣 | 色婷婷一区二区三区四区 | 日韩成人在线视频 | 成人精品鲁一区一区二区 | 欧美精品欧美精品系列 | 国产精品久久久久9999鸭 | 能免费看的av | 亚洲一区二区三区四区五区中文 | 欧美一a一片一级一片 | 热久久性 | 国产免费一区二区 | 古典武侠第一页久久777 | 美女啪啪国产 | 欧美特级黄色 | 日韩精品久久久久久 | 精品一区二区久久久久久久网站 | 久久免费福利 | 亚洲男人网 | 亚洲精品无人区 | 欧美精品乱码99久久影院 | 97国产一区二区精品久久呦 | 国产精品久久久久久久久图文区 | 成人三级网址 | 久久蜜桃av | 69堂永久69tangcom| 91精品久久久久 | 毛片免费在线观看 | 精品欧美在线观看 | 欧美激情视频一区二区三区在线播放 | 一区二区三区四区在线视频 | 亚洲欧美精品 | 免费一区二区三区在线视频 | 国产福利一区二区 | 国产精品美女在线观看 | 欧美成人精品一区二区男人看 |