一段時間內,大家都對這些概念含糊不清。而一般地,也很少去用一個很明確的界限來把三者分清。
這三個概念,不僅僅在前端有,在設計上、在其他開發語言中,都有對這幾個概念的定義和區分。但這里我們僅限於前端開發領域。下面簡單說一下我的想法。
控件
控件是對css樣式的高度抽離,我對CSS控件的定義來自於UED的UI視覺設計規范,在一個大型項目中,優秀的UI規范總是能將頁面的設計元素提煉出一套標准(比如顏色、字體字號、柵格等)。CSS控件化是從HTML頁面結構提煉出的不可分割的最小標簽單位。
例如一個icon圖標(使用em標簽表示)、一段文本(使用p標簽)、一個標題(h標簽)或者一個按鈕(a標簽),他們都是構成整個頁面的最小結構單位,這就是控件;而控件化還需要控件是具備在整個項目中可復用性強的元素。因此在一個項目中我一般會提取如:btn.css、article.css、icon.css等這樣的項目通用控件化模塊文件,當然這些控件化模塊還可以被分類繼續拆分成更靈活的小模塊。
每一個控件化模塊都用SASS編寫,使得屬性值均可以變量化,便於UI規范修改我們前端做相應的批量修改。
插件
前端插件指由js封裝的可獨立提供使用的ui,實現某一類特定的功能和效果。從組成上來說,由js文件或是js和css共同構成,兩種方式。
組件
組件由html、js、css、json、圖片等資源組成,是頁面展現中某一個獨立部分,組件可以抽象也可以直接使用,組件可以嵌套組合使用。
基於組件可以封裝聚合形成組件庫,多個組件構成頁面,組件庫可以幫助快速開發頁面.
轉自:我對前端開發中組件、插件、控件的理解 · Issue #6 · iuap-design/tinper-neoui · GitHub