vue使用Font Awesome的方法步骤


Posted in Javascript onFebruary 26, 2019

折腾前言

目前工作主要使用 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使用Font Awesome的方法步骤

图标存放目录

为了开发方便,新建 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: 直接设置字体,改变不了大小;

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
页面版文本框智能提示JS代码
Nov 20 Javascript
js中实现多态采用和继承类似的方法
Aug 22 Javascript
JS+CSS实现简易的滑动门效果代码
Sep 24 Javascript
input输入密码变黑点密文的实现方法
Jan 09 Javascript
easyui datebox 时间限制,datebox开始时间限制结束时间,datebox截止日期比起始日期大的实现代码
Jan 12 Javascript
axios学习教程全攻略
Mar 26 Javascript
jQuery实现在HTML文档加载完毕后自动执行某个事件的方法
May 08 jQuery
微信小程序 实现点击添加移除class
Jun 12 Javascript
React-Native 组件之 Modal的使用详解
Aug 08 Javascript
JavaScript门道之标准库
May 26 Javascript
node.js的http.createServer过程深入解析
Jun 06 Javascript
手写Vue弹窗Modal的实现代码
Sep 11 Javascript
JS实现的杨辉三角【帕斯卡三角形】算法示例
Feb 26 #Javascript
create-react-app使用antd按需加载的样式无效问题的解决
Feb 26 #Javascript
JS实现电话号码的字母组合算法示例
Feb 26 #Javascript
JS实现的合并两个有序链表算法示例
Feb 25 #Javascript
JS实现判断有效的数独算法示例
Feb 25 #Javascript
js实现通过开始结束控制的计时器
Feb 25 #Javascript
js实现倒计时器自定义时间和暂停
Feb 25 #Javascript
You might like
xml在joomla表单中的应用详解分享
2012/07/19 PHP
深入解析yii权限分级式访问控制的实现(非RBAC法)
2013/06/13 PHP
PHP使用xmllint命令处理xml与html的方法
2014/12/15 PHP
PHP 绘制网站登录首页图片验证码
2016/04/12 PHP
微信支付开发告警通知实例
2016/07/12 PHP
php安装扩展mysqli的实现步骤及报错解决办法
2017/09/23 PHP
PHP实现随机数字、字母的验证码功能
2018/08/01 PHP
jquery 输入框数字限制插件
2009/11/10 Javascript
禁用键盘上的(全局)指定键兼容iE、Chrome、火狐
2013/05/14 Javascript
HTML长文本截取含有HTML代码同样适用的两种方法
2013/07/31 Javascript
Javascript实现简单二级下拉菜单实例
2014/06/15 Javascript
理解javascript中DOM事件
2015/12/25 Javascript
jQuery EasyUI tree 使用拖拽时遇到的错误小结
2016/10/10 Javascript
JS+CSS3制作炫酷的弹窗效果
2016/11/08 Javascript
微信小程序数据分析之自定义分析的实现
2018/08/17 Javascript
[37:02]OG vs INfamous 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Python运算符重载用法实例
2015/05/28 Python
python查看zip包中文件及大小的方法
2015/07/09 Python
Python编程pygal绘图实例之XY线
2017/12/09 Python
Python分割指定页数的pdf文件方法
2018/10/26 Python
python pandas移动窗口函数rolling的用法
2020/02/29 Python
4行Python代码生成图像验证码(2种)
2020/04/07 Python
Pandas的数据过滤实现
2021/01/15 Python
CSS3+font字体文件实现圆形半透明菜单具体步骤(图解)
2013/06/03 HTML / CSS
Abbott Lyon官网:女士手表、珠宝及配件
2020/12/26 全球购物
shallow copy和deep copy的区别
2016/05/09 面试题
施工班组长岗位职责
2014/01/05 职场文书
西式婚礼证婚词
2014/01/12 职场文书
乡镇八一建军节活动方案
2014/08/24 职场文书
快递员岗位职责
2014/09/12 职场文书
个人买房协议书范本
2014/10/06 职场文书
中学教师读书笔记
2015/07/01 职场文书
小学生教师节广播稿
2015/08/19 职场文书
管理者日常工作必备:22条企业管理流程模板!
2019/07/12 职场文书
关于Spring配置文件加载方式变化引发的异常详解
2022/01/18 Java/Android
CentOS MySql8 远程连接实战
2022/04/19 MySQL