vue.js系列中的vue-fontawesome使用


Posted in Javascript onFebruary 10, 2018

折腾前言

目前工作主要使用 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 标签

vue.js系列中的vue-fontawesome使用

图标存放目录

为了开发方便,新建 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> 标签了

结束

使用步骤还是很简单的,经过上面的步骤之后我们就可以正常使用图标库了

总结下来步骤其实就下面几步

  1. import Icon.vue 组件
  2. new you-icon.js,里面通过 Icon.register 注册图标
  3. 【可选】 新建图标文件出口文件,这个在使用的图标很多的时候比 较方便
  4. <icon name="you icon name"></icon> 引用图标
  5. 给图标设置样式(大小可以通过 transform: scale() 来设置)

PS: 直接设置字体,改变不了大小;

总结

以上所述是小编给大家介绍的vue.js系列中的vue-fontawesome使用,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
修改jquery.lazyload.js实现页面延迟载入
Dec 22 Javascript
Javascript延迟执行实现方法(setTimeout)
Dec 30 Javascript
jquery ajax学习笔记2 使用XMLHttpRequest对象的responseXML
Oct 16 Javascript
详解js图片轮播效果实现原理
Dec 17 Javascript
JavaScript中的各种操作符使用总结
May 26 Javascript
self.attachevent is not a function的解决方法
Apr 04 Javascript
JavaScript中this的用法及this在不同应用场景的作用解析
Apr 13 Javascript
JavaScript函数表达式详解及实例
May 05 Javascript
requirejs按需加载angularjs文件实例
Jun 08 Javascript
详解用webpack把我们的业务模块分开打包的方法
Jul 20 Javascript
vue中如何创建多个ueditor实例教程
Nov 14 Javascript
Javascript格式化并高亮xml字符串的方法及注意事项
Aug 13 Javascript
集成vue到jquery/bootstrap项目的方法
Feb 10 #jQuery
vue.js分页中单击页码更换页面内容的方法(配合spring springmvc)
Feb 10 #Javascript
vue2.0组件之间传值、通信的多种方式(干货)
Feb 10 #Javascript
webpack 4.0.0-beta.0版本新特性介绍
Feb 10 #Javascript
利用SpringMVC过滤器解决vue跨域请求的问题
Feb 10 #Javascript
Vue组件和Route的生命周期实例详解
Feb 10 #Javascript
Vue2.0用户权限控制解决方案的示例
Feb 10 #Javascript
You might like
PHP脚本数据库功能详解(上)
2006/10/09 PHP
smarty 原来也不过如此~~呵呵
2006/11/25 PHP
php array_merge下进行数组合并的代码
2008/07/22 PHP
PHP解码unicode编码的中文字符代码分享
2014/08/13 PHP
php提交表单发送邮件的方法
2015/03/20 PHP
php好代码风格的阶段性总结
2016/06/25 PHP
thinkPHP5分页功能实现方法分析
2017/10/25 PHP
php使用yield对性能提升的测试实例分析
2019/09/19 PHP
jQuery 对象中的类数组操作
2009/04/27 Javascript
javascript对象之内置对象Math使用方法
2010/04/16 Javascript
解决IE下select标签innerHTML插入option的BUG(兼容IE,FF,Opera,Chrome,Safari)
2010/05/13 Javascript
一个JQuery写的点击上下滚动的小例子
2011/08/27 Javascript
javascript 三种方法实现获得和设置以及移除元素属性
2013/03/20 Javascript
JS实现程序暂停与继续功能代码解读
2013/10/10 Javascript
AngularJS 自定义指令详解及示例代码
2016/08/17 Javascript
JavaScript自定义函数实现查找两个字符串最长公共子串的方法
2016/11/24 Javascript
超全面的javascript中变量命名规则
2017/02/09 Javascript
详解RequireJS按需加载样式文件
2017/04/12 Javascript
JavaScript面向对象精要(上部)
2017/09/12 Javascript
vue实现简单loading进度条
2018/06/06 Javascript
nodejs使用async模块同步执行的方法
2019/03/02 NodeJs
ES6扩展运算符和rest运算符用法实例分析
2020/05/23 Javascript
[53:23]Secret vs Liquid 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
python实现顺时针打印矩阵
2019/03/02 Python
django 实现后台从富文本提取纯文本
2020/07/02 Python
Python读取图像并显示灰度图的实现
2020/12/01 Python
英国潮流网站:END.(全球免邮)
2017/01/16 全球购物
瑞典时尚耳机品牌:Urbanears
2017/07/26 全球购物
计算机专业学生求职信分享
2013/12/15 职场文书
蜜蜂引路教学反思
2014/02/04 职场文书
小学生家长评语大全
2014/02/10 职场文书
现场施工员岗位职责
2014/03/10 职场文书
中学生英语演讲稿
2014/04/26 职场文书
法英专业大学生职业生涯规划范文:衡外情,量己力!
2014/09/23 职场文书
公司环境卫生管理制度
2015/08/05 职场文书
Nginx配置SSL证书出错解决方案
2021/03/31 Servers