在用vue-cli4创建的vue2.x项目中通过vue-fontawesome使用fontawesome5
前言
本文写于2020年1月11日,仅提供最基本的引用方法,参考fontawesome5英文官方文档和vue-fontawesome英文官方文档。
正文
在vue项目中使用fontawesome5图标,不需要引入fontawesome组件,直接引入vue-fontawesome和相关组件就可以了。
第1步:npm install
在vue项目目录中执行下面的安装命令:
npm i --save @fortawesome/fontawesome-svg-core
npm i --save @fortawesome/free-solid-svg-icons
npm i --save @fortawesome/free-regular-svg-icons
npm i --save @fortawesome/free-brands-svg-icons
npm i --save @fortawesome/vue-fontawesome
其中:
@fortawesome/free-solid-svg-icons是solid风格图标
@fortawesome/free-regular-svg-ico是regular风格图标
@fortawesome/free-brands-svg-icons是品牌图标
这三个可以根据项目实际需要选择性安装,当然如果有专业版授权,也可以引入诸如@fortawesome/pro-duotone-svg-icons等专业版图标。
第2步:import
在项目代码中适当的位置使用以下方式将组件引入到页面中,vue-fontawesome官方推荐在main.js中引入(本文作者本人为了方便而在main.js同级创建了fontawesome.js文件,然后在main.js中引入fontawesome.js):
import Vue from 'vue'
import { library } from '@fortawesome/fontawesome-svg-core'
// 事实上官方不推荐使用下面的方式将整个库引入到项目中
import { fas } from '@fortawesome/free-solid-svg-icons'
// 如果确实需要下面的图标就把注释取消
// import { far } from '@fortawesome/free-regular-svg-icons'
// import { fab } from '@fortawesome/free-brands-svg-icons'
import {
FontAwesomeIcon,
FontAwesomeLayers,
FontAwesomeLayersText
} from '@fortawesome/vue-fontawesome'
// library.add与import对应
library.add(fas)
// library.add(far)
// library.add(fab)
Vue.component('font-awesome-icon', FontAwesomeIcon)
Vue.component('font-awesome-layers', FontAwesomeLayers)
Vue.component('font-awesome-layers-text', FontAwesomeLayersText)
第3步:use,礼成
在vue组件或html文件中需要使用图标的位置使用下面的方式将图标插入到文档中(不要使用<i class=”fas fa-home”></i>这样的方式,在vue中行不通也不建议这样用):
<!--
icon属性设置动态绑定(不带冒号)时,属性值就是图标名称,默认使用fas库
-->
<font-awesome-icon icon="spinner" />
<!--
icon属性设置动态绑定(带冒号)时,属性值为数组,
数组第2个元素是图标库,如fas、far、fab等
数组第2个元素是图标名称
-->
<font-awesome-icon :icon="['fas', 'angle-double-left']" />
<!--
fixed-width属性用于让图标统一宽度
-->
<font-awesome-icon :icon="['fas', 'angle-double-right']" fixed-width />
<!--
通过size属性设置图标大小
-->
<font-awesome-icon icon="spinner" size="xs" />
<font-awesome-icon icon="spinner" size="lg" />
<font-awesome-icon icon="spinner" size="6x" />
<!--
通过rotation属性控制图标的呈现角度
-->
<font-awesome-icon icon="spinner" rotation="270" />
<!--
通过flip属性控制控制图标翻转
-->
<font-awesome-icon icon="spinner" flip="horizontal" />
<font-awesome-icon icon="spinner" flip="vertical" />
<font-awesome-icon icon="spinner" flip="both" />
<!--
通过spin和pulse属性让图标旋转、跳动
-->
<font-awesome-icon icon="spinner" spin />
<font-awesome-icon icon="spinner" pulse />
<!-- ……不一一列举了,更多的花样就参考官方文档好了 -->
后记
事实上,vue-fontawesome的开发者不建议我们简单粗暴的一次性把整个图标库引入到项目中,这样做违背vue框架组件化开发和按需引入的原则,下面是文档原文:
This(Import entire styles) will add the entire brands style to your library. Be careful with this approach as it may be convenient in the beginning but your bundle size will be large. We highly recommend that you take advantage of subsetting through tree shaking.
大概意思就是说这种引入方式虽然用起来会很方便,但是会在发布时让包体积很大,所以官方推荐采用组件化引用的方式。具体使用方法如下:
import { library } from '@fortawesome/fontawesome-svg-core'
import { faSpinner, faAlignLeft } from '@fortawesome/free-solid-svg-icons'
library.add(faSpinner, faAlignLeft)
对应的vue文件或html文件写法:
<font-awesome-icon :icon="['fas', 'spinner']" />
<font-awesome-icon :icon="['fas', 'align-left']" />
注意到了吧,其实就是“用一个图标便引入一个图标”。
好了,参考本文方法可以实现在vue前端项目中自由使用fontawesome5中的免费版本图标,在官方文档中可以获得更多有用的信息。
fontawesome5官方文档(vue.js):https://fontawesome.com/how-to-use/on-the-web/using-with/vuejs
vue-fontawesome官方文档:https://www.npmjs.com/package/@fortawesome/vue-fontawesome
希望本文可以帮助到你,也欢迎你随时与我交流探讨,我们共同进步。
在用vue-cli4创建的vue2.x项目中通过vue-fontawesome使用fontawesome5的更多相关文章
- Vue2/3 项目中的 ESLint + Prettier 代码检测格式化风格指南
Vue2/3 项目中的 ESLint + Prettier 代码检测格式化风格指南 因为平时都是使用 VSCode ESLint + Prettier 检测格式化不规范代码,但是随着接手的项目越来越多 ...
- 使用vue/cli 创建一个简单的项目
首先,电脑安装了node.js官方要求8.9 或更高版本 (推荐 8.11.0+) npm install -g @vue/cli # OR yarn global add @vue/cli 全局安装 ...
- vue2.0 项目搭建 和vue 2.0 electron 项目搭建
1.关于electron vue 项目的搭建 全局或者局部安装项目vue: 脚手架指令生成: npm install -g vue-cli vue init simulatedgreg/electro ...
- 寻找项目中顶级Vue对象 (一)
个人博客首发博客园: http://www.cnblogs.com/zhangrunhao/ 参考 感谢作者 从一个奇怪的错误出发理解 Vue 基本概念 安装 - Vue.js 渲染函数 - Vue. ...
- 在webpack构建的项目中使用vue
一.复习在普通网页中使用vue1.使用script引入vue2.在index中创建 id为app的容器3.通过new vue得到vm实例二.在webpack中尝试使用vue://注意 : 在webpa ...
- vue2.0项目中使用Ueditor富文本编辑器示例
最近在vue项目中需要使用富文本编辑器,于是将Ueditor集成进来,作为公共组件. 在线预览:https://suweiteng.github.io/vue2-management-platform ...
- vue2整个项目中,数据请求显示loading图
一般项目中,有时候会要求,你在数据请求的时候显示一张gif图片,然后数据加载完后,消失.这个,一般只需要在封装的axios中写入js事件即可.当然,我们首先需要在app.vue中,加入此图片.如下: ...
- Vue学习笔记之vue-cli脚手架项目中组件的使用
在webpack-simple模板中,包括webpck模板.一个.vue文件就是一个组件. 为什么会这样呢?因为webpack干活了!webpack的将我们所有的资源文件进行打包.同时webpack还 ...
- 如何在vue2.0项目中引用element-ui和echart.js
1 项目中怎样添加elment-ui 和 echart.js 1.1直接在packjson 里面的 dependencies 配置 "element-ui": "^1.3 ...
随机推荐
- Orleans[NET Core 3.1] 学习笔记(四)( 3 )监控Orleans Silo的方式 OrleansDashboard
简介 Orleans用起来的确很爽,更爽的是咱们有能监控它的工具. OrleansDashboard 这个工具是一个可视化的Silo监控工具,Silo和Grain的活跃状态一目了然,各个接口的响应速度 ...
- python基础扩展
一.垃圾回收机制 垃圾回收机制是自动帮助我们管理内存,清理垃圾的一种工具 1.引用计数 当一个对象的引用被创建或者复制时,对象的引用计数加1: 当一个对象的引用被销毁时,对象的引用计数减1: 当对象的 ...
- 清北学堂—2020.1提高储备营—Day 3(图论初步(二))
qbxt Day 3 --2020.1.19 济南 主讲:李奥 目录一览 1.图论(kruskal算法,最短路径算法,拓扑排序) 总知识点:图论 一.kruskal算法 1.目的:求图的最小生成树 2 ...
- 使用Arduino Nano驱动Lora模块
使用Arduino Nano驱动Lora模块 为什么选用Lora 射频通信芯片有很多种,但是一般在同样功耗下,距离没有Lora远;同等范围下,没有Lora节能. Lora通信只适用于低速率,高延时的场 ...
- java设计模式学习笔记--浅谈设计模式
设计模式的目的 编写软件的过程中,程序员面临着来自耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性等多方面的挑战.设计模式为了让程序具有更好的 1.代码重用性(即:相同功能的代码,不用多次编写) ...
- opencv —— saturate_cast 溢出保护
src.at<uchar>(i,j)[0] = saturate_cast<uchar>(data); if (data < 0) data = 0; else if ( ...
- Fiddler: AutoResponder 构建模拟测试场景
AutoResponder 可用于拦截某一请求,并重定向到本地的资源,或者使用Fiddler的内置响应.可用于调试服务器端代码而无需修改服务器端的代码和配置,因为拦截和重定向后,实际上访问的是本地的文 ...
- NFS部署
yum install nfs-utils -y systemctl restart/enable nfs systemctl status rpcbind vim /etc/exports /dat ...
- Java高级项目实战之CRM系统01:CRM系统概念和分类、企业项目开发流程
1. CRM系统介绍 CRM系统即客户关系管理系统, 顾名思义就是管理公司与客户之间的关系. 是一种以"客户关系一对一理论"为基础,旨在改善企业与客户之间关系的新型管理机制.客户关 ...
- C#排序算法的实现---快速排序
快速排序(Quicksort)是对冒泡排序的一种改进.由C. A. R. Hoare在1962年提出.它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的 ...