折騰前言
目前工作主要使用 vue.js
框架進行開發,自己又對 vue
不是那么了解,還是半桶的狀態,所以得加緊步伐趕緊熟悉起來,這兩天在使用腳手架 vue-cli
創建項目玩耍中,又一直對font-awesome
鍥而不舍,通過 github
了解到早有大牛搞出了 vue-awesome
,因此就開始折騰了……
廢話不多說,開搞!
準備工作
這個是作者的 github
地址:飛機
為了演示完整步驟,用腳手架新建個項目
正在創建中…
趁此閑話幾句
這種方式使用有個好處就是,你可以自己自定義任何圖標,即用 svg
格式輸出,然后通過 Icon.register
去注冊一個圖標,注冊方式如下:
如果圖標很多的時候,DOM
中可能分散著大量的 svg
標簽,這個不知道算不算缺點來著。
Icon.register({ 'chevron-right': { 'width': 1280, 'height': 1792, 'paths': [{ 'd': 'M1107 877l-742 742q-19 19-45 19t-45-19l-166-166q-19-19-19-45t19-45l531-531-531-531q-19-19-19-45t19-45l166-166q19-19 45-19t45 19l742 742q19 19 19 45t-19 45z' }] } });
chevron-right
這個是該圖標的名字,在使用的時候通過
<icon name="chevron-right"></icon>
去使用,至于樣式按照正常定義即可。
paths
里面就是圖標的繪制 svg
時候的路徑信息
安裝OK了,進入正題……
準備工作:
安裝 vue-awesome
$ npm install vue-awesome --save
這個簡單安裝完成就OK。
結果預覽
從圖中看其實圖標最后就是個 svg
標簽
圖標存放目錄
為了開發方便,新建 src/icons
目錄集中存放圖標js
文件
$ cd src/
$ mkdir icons && cmod
這里 cmod
是 777 權限,由于是用的是虛擬機,所以經常出現權限問題,因此索性直接給 777(僅限本地開發)
icon 組件
下載 Icon.vue
文件
到這里下載 Icon.vue
文件,建議將整個項目 git
下來。
這個組件的作用就是,用來創建 <icon name="your icon name"></icon>
自定義標簽。
然后把 Icon.vue
放到 components
目錄下(放哪里可以自己決定)
在 src/icons
創建注冊圖標文件
這個目錄集中放置所有 icon
的注冊 js
文件
創建出口文件 index.js
這里面將引入所有圖標 js
文件
// src/icons/index.js import './chevron-right.js'; // ...... 其他需要的圖標文件
以右鍵頭圖標為例:(chevron-right.js
)
import Icon from '../components/Icon.vue'; Icon.register({ 'chevron-right': { 'width': 1280, 'height': 1792, 'paths': [{ 'd': 'M1107 877l-742 742q-19 19-45 19t-45-19l-166-166q-19-19-19-45t19-45l531-531-531-531q-19-19-19-45t19-45l166-166q19-19 45-19t45 19l742 742q19 19 19 45t-19 45z' }] } });
項目入口 main.js 引用字體庫
項目主入口文件 main.js
中引入 vue-awesome
庫和 icons/index.js
文件
引入圖標組件
import Icon from './components/Icon';
引入圖標內容文件
import './icons/index.js';
然后將 Icon
注冊成 vue
組件
Vue.component('icon', Icon);
注冊完成之后,我們就可以在代碼中直接使用 <icon></icon>
標簽了
結束
使用步驟還是很簡單的,經過上面的步驟之后我們就可以正常使用圖標庫了
總結下來步驟其實就下面幾步
import Icon.vue
組件you-icon.js
,里面通過 Icon.register
注冊圖標<icon name="you icon name"></icon>
引用圖標transform: scale()
來設置)PS: 直接設置字體,改變不了大小;
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com