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 相关文章推荐
JavaScript 工具库 Cloudgamer JavaScript Library v0.1 发布
Oct 29 Javascript
用JS控制回车事件的代码
Feb 20 Javascript
jQuery对象与DOM对象之间的相互转换
Mar 03 Javascript
jQuery鼠标经过方形图片切换成圆边效果代码分享
Aug 20 Javascript
利用jquery正则表达式在页面验证url网址输入是否正确
Apr 04 jQuery
Async Validator 异步验证使用说明
Jul 03 Javascript
js实现图片3D轮播效果
Sep 21 Javascript
小程序input数据双向绑定实现方法
Oct 17 Javascript
vue实现滚动鼠标滚轮切换页面
Dec 13 Vue.js
详解如何解决使用JSON.stringify时遇到的循环引用问题
Mar 23 Javascript
5种 JavaScript 方式实现数组扁平化
Oct 05 Javascript
vue+iview实现手机号分段输入框
Mar 25 Vue.js
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
php simplexmlElement操作xml的命名空间实现代码
2011/01/04 PHP
非常有用的9个PHP代码片段
2016/04/06 PHP
PHP+Jquery与ajax相结合实现下拉淡出瀑布流效果【无需插件】
2016/05/06 PHP
PHP Ajax跨域问题解决方案代码实例
2020/08/01 PHP
filemanage功能中用到的common.js
2007/04/08 Javascript
IE和FireFox(FF)中js和css的不同
2009/04/13 Javascript
JavaScript 动态改变图片大小
2009/06/11 Javascript
被jQuery折腾得半死,揭秘为何jQuery为何在IE/Firefox下均无法使用
2010/01/22 Javascript
json-lib出现There is a cycle in the hierarchy解决办法
2010/02/24 Javascript
Javascript基础知识(一)核心基础语法与事件模型
2014/09/29 Javascript
nodejs导出excel的方法
2015/06/30 NodeJs
创建自己的jquery表格插件
2015/11/25 Javascript
JS数组去掉重复数据只保留一条的实现代码
2016/08/11 Javascript
json与jsonp知识小结(推荐)
2016/08/16 Javascript
Jquery实时监听input value的实例
2017/01/26 Javascript
JavaScript设计模式之策略模式详解
2017/06/09 Javascript
运用jQuery写的验证表单(实例讲解)
2017/07/06 jQuery
微信小程序movable view移动图片和双指缩放实例代码
2017/08/08 Javascript
JavaScript中一些特殊的字符运算
2017/08/17 Javascript
vue-cli脚手架config目录下index.js配置文件的方法
2018/03/13 Javascript
JSON的parse()方法介绍
2019/01/31 Javascript
个人小程序接入支付解决方案
2019/05/23 Javascript
Vuex实现数据增加和删除功能
2019/11/11 Javascript
js实现鼠标拖拽div左右滑动
2020/01/15 Javascript
js找出5个数中最大的一个数和倒数第二大的数实现方法示例小结
2020/03/04 Javascript
[43:41]VP vs RNG 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.21.mp4
2020/07/19 DOTA
利用python解决mysql视图导入导出依赖的问题
2017/12/17 Python
更新pip3与pyttsx3文字语音转换的实现方法
2019/08/08 Python
解析Tensorflow之MNIST的使用
2020/06/30 Python
HTML5 script元素async、defer异步加载使用介绍
2013/08/23 HTML / CSS
Canvas系列之滤镜效果
2019/02/12 HTML / CSS
冬季施工防火方案
2014/05/17 职场文书
安全先进班组材料
2014/12/26 职场文书
幼儿园班级管理心得体会
2016/01/07 职场文书
Python Django项目和应用的创建详解
2021/11/27 Python
Tomcat配置访问日志和线程数
2022/05/06 Servers