VUE -- 如何快速的寫出一個Vue的icon組件?


伴隨着Vue的誕生,它似乎就被人寄予厚望,不僅僅是因為其輕量級的MVVM設計方式,而且其實現了組件化開發模式,所以越來越多的人會拿Vue和AngularJS、React Native做比較。具體關於它們的比較,我不做過多描述,使用哪個應該根據使用場景出發。

如何快速的寫出一個Vue的icon組件?這篇文章來教你

Vue.js

最近,因為有業務需要使用Vue去開發,所以我們需要自己封裝出Vue.js的各種常用組件。今天就給大家介紹一下我封裝Vue的icon組件的過程。當然這篇文章不是Vue.js,Webpack類的基礎教學課程,而是在大家有些基礎的情況下去看的。所以文章中只介紹了部分重點的代碼,以及代碼的截圖,如果有不大能看懂的地方可以先學下Vue和webpack的基礎。如果真的有需要可以在評論處評論,我可以出些Vue,Gulp,Webpack等基礎文章。

icon組件外觀

首先我們看一下icon組件運行出來后的模樣

如何快速的寫出一個Vue的icon組件?這篇文章來教你

icon組件

icon組件實現過程

  • 項目搭建

icon組件實現后是一個可以直接使用的npm包,使用的是Yeoman構建工具,配和Gulp+Webpack,生成的工作目錄結構如下

如何快速的寫出一個Vue的icon組件?這篇文章來教你

目錄結構

(1)config文件夾下是webpack的配置文件

(2)src下是Vue組件的源文件

(3)example文件夾下是示例,剛看到的截圖就是example文件夾下的文件運行后的樣子

  • icon源文件編寫

項目結構生成好后,編寫icon組件的源文件就是最重要的了。

icon組件是一個.vue文件,其中包含template,style和script。

我實現的icon組件樣式是借助於ionicons,所以要借助於ionicons的樣式文件,因此會有以下的代碼

如何快速的寫出一個Vue的icon組件?這篇文章來教你

引入ionicons的樣式

然后考慮icon組件應該具備的幾項屬性,一個是樣式,利用type變量去控制;一個是顏色,利用color變量去控制;一個是大小,利用size變量去控制。所以template中有以下代碼

如何快速的寫出一個Vue的icon組件?這篇文章來教你

template代碼

在script中有以下代碼

如何快速的寫出一個Vue的icon組件?這篇文章來教你

script代碼

同時預先定義好icon組件大中小的幾個樣式,因此在style中會有以下代碼

如何快速的寫出一個Vue的icon組件?這篇文章來教你

style代碼

至此icon組件的源碼編寫就結束了,但並不是整個工程就結束了,需要對webpack進行設置,而這也是最重要的部分。

因為我們在icon組件的源碼中引入了ionicons的樣式,所以需要在webpack的配置文件中加入對css文件的解析loader,而css文件中又會引入woff,svg等文件,因此又要加入對這些文件的解析loader,如果不加入的對css,tff,svg等文件解析的話會報錯。

在webpack.base.js文件中加入以下代碼

如何快速的寫出一個Vue的icon組件?這篇文章來教你

webpack的配置

  • 樣例的訪問

在源文件和webpack配置好后,就可以通過在example文件夾下寫demo了。

在demo.vue文件中,使用<icon>標簽即可訪問到自定義的icon組件

如何快速的寫出一個Vue的icon組件?這篇文章來教你

icon組件的例子

通過type,size,color三個參數來定義我們需要的icon組件的樣式,運行出來后的例子就如一開始運行出來的一樣,是不是很好看呢?

總結

Vue的組件還有很多,例如form表單類的,View視圖類,Navigation導航類等,都需要一個個去編寫,不過只要我們搞懂Vue的運行模式和Webpack的編譯模式就可以很方便的寫出來了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM