时间:2021-07-01 10:21:17 帮助过:6人阅读
折腾前言
目前工作主要使用 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 组件
new you-icon.js,里面通过 Icon.register 注册图标
【可选】 新建图标文件出口文件,这个在使用的图标很多的时候比 较方便
<icon name="you icon name"></icon> 引用图标
给图标设置样式(大小可以通过 transform: scale() 来设置)
PS: 直接设置字体,改变不了大小;
上面是我整理给大家的,希望今后会对大家有帮助。
相关文章:
在vue中如何实现watch监听对象及对应值的变化
在vue中使用$emit时,父组件无法监听到子组件的事件如何实现?
在vue中如何使用全局提示框组件?
以上就是在vue.js中有关vue-fontawesome使用的详细内容,更多请关注Gxl网其它相关文章!