首页 > 其他分享 >在Nuxt3中使用Font Awesome

在Nuxt3中使用Font Awesome

时间:2023-01-04 13:11:41浏览次数:65  
标签:Nuxt3 svg Awesome fortawesome fontawesome Font nuxt

如何把Font Awesome集成到Nuxt3中使用

安装:

1. 安装Font Awesome图标库核心

yarn add @fortawesome/fontawesome-svg-core

2. 安装Font Awesome免费图标依赖包
yarn add @fortawesome/free-solid-svg-icons
yarn add @fortawesome/free-regular-svg-icons
yarn add @fortawesome/free-brands-svg-icons

安装Pro版本,参考官方文档 Set Up with Vue | Font Awesome Docs

3. 安装官方提供的在Vue中使用图标库的组件
# for Vue 3.x
yarn add @fortawesome/vue-fontawesome@latest-3
4. 组件引入,编写Nuxt插件,在项目的plugins目录内,添加文件font-awesome.ts,内容如下:
import { library, config } from '@fortawesome/fontawesome-svg-core'
import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome'
// 引入了 free-solid 中的 moon 和 sun
import { faSun, faMoon } from '@fortawesome/free-solid-svg-icons'
// 因为默认添加了 nuxt会造成一些错误,所以不自动添加样式
config.autoAddCss = false
// defineNuxtPlugin 是全局的,不需要手动引入即可使用,不会报错
export default defineNuxtPlugin((nuxtApp) => {
  // 将图标添加到库中
  library.add(faSun, faMoon)
  // 全局注册 font-awesome-icon 组件
  nuxtApp.vueApp.component('font-awesome-icon', FontAwesomeIcon)
})

保存后,接下来,在 nuxt.config.ts 中全局引入 fontawesome-svg-core 自带的样式,假如不引入会造成 svg 图标发生重排,导致页面闪烁。

nuxt.config.ts 文件中,添加如下内容,保存:

import { defineNuxtConfig } from 'nuxt'

// https://v3.nuxtjs.org/api/configuration/nuxt.config
export default defineNuxtConfig({
	...
	// 添加这一行代码
  css: ['@fortawesome/fontawesome-svg-core/styles.css'],
 
  ...
})
5. 目前我使用的版本是^6.2.1,由于兼容性问题,只按照以上方法配置,使用图标时,会存在报错和渲染异常问题:
// 浏览器报错信息
[Vue warn]: Hydration node mismatch:
- Client vnode: svg 
- Server rendered DOM: <!---->  
  at <FontAwesomeIcon icon= (2) ['fas', 'sun'] > 
  at <Default > 
  ...
        
[Vue warn]: Hydration children mismatch in <div>: server rendered element contains fewer child nodes than client vdom. 
  at <Default > 
  at <Anonymous key="default" name="default" hasTransition=false > 
 	...

// 控制台报错信息
Could not find one or more icon(s) { prefix: 'fas', iconName: 'sun' } {}

解决:参考链接:Github: Using FontAwesome in Nuxt 3 Discussions#3823

在nuxt.config.ts文件中,添加如下内容,保存后重启项目:

import { defineNuxtConfig } from 'nuxt'

// https://v3.nuxtjs.org/api/configuration/nuxt.config
export default defineNuxtConfig({
	...
	// 添加这一部分代码
  build: {
  	transpile: [
       '@fortawesome/vue-fontawesome', // 必须
       '@fortawesome/fontawesome-svg-core', // 必须
       '@fortawesome/free-solid-svg-icons' // 非必须,使用了哪几个图标包,就引入对应的包名
     ]
  }
  
  ...
})
6. 在页面中使用Font Awesome图标
<font-awesome-icon icon="fa-solid fa-sun" />
<font-awesome-icon icon="fa-solid fa-moon" />

官方使用说明文档:

在Vue中使用| Font Awesome Docs

Set Up with Vue | Font Awesome Docs

标签:Nuxt3,svg,Awesome,fortawesome,fontawesome,Font,nuxt
From: https://www.cnblogs.com/szq233/p/17024533.html

相关文章

  • QFont
    QFont Header:#include<QFont> PublicTypesenumCapitalization {MixedCase,AllUppercase,AllLowercase,SmallCaps,Capitalize}enumHintingP......
  • 阿里iconfont的Unicode和Font class,前端做出来的图标显示是方框怎么办?
    在用阿里iconfont的Unicode和Fontclass两种方法制作字体图标的过程中,刚开始做的时候,写完代码运行出来是如下图的方框。后来摸索出了解决的办法,分享给大家看看是否也能一......
  • IOS MoarFonts——字体定制:所见即所得
    MoarFontsUsecustomfontsforyouriOSprojectsdirectlyinInterfaceBuilder,theWYSIWYGwaybyCédricLuthi“​​0xced​​”AboutSinceiOS3.2,youcanuse......
  • C# font远程服务器字体无法显示
    项目中使用了System.Drawing相关的font,本地正常,远程显示方块,可以把本地字体文件复制到远程。关键代码:System.Drawing.Text.PrivateFontCollectionprivateFonts=newSy......
  • C# winform + fontawesome 基本面板
    winform+fontawesome软件版本:.NETFramework==4.7.2FontAwesome==5.8.3安装FontAwesome搜索FontAwesome.Sharp,选择对应的版本进行安装效果图代码地址h......
  • [论文阅读] SE-GAN Skeleton Enhanced GAN-based Model for Brush Handwriting Font G
    pretitle:SE-GAN:SkeletonEnhancedGAN-basedModelforBrushHandwritingFontGenerationaccepted:ICME2022paper:https://arxiv.org/abs/2204.10484code:no......
  • MAUI新生4.5-字体图像集成Font&Image
    一、字体集成:MAUI默认使用OpenSans字体,通过引入新的字体库和图标字体库为案例说明1、案例的字体库,均在www.iconfont.cn下载(1)字体库为阿里巴巴普惠体的Thin35,Alibaba_PuHu......
  • 字体样式font-style
    font-family 指的是字体比如“宋体”,“微软雅黑”等等具体字体:微软雅黑、宋体、黑体、宋体等等字体系列:sans-serif、serf、monospace等常见字体系列(了解):1无衬线字......
  • iconfont字体图标,ico图标设置,版心
    iconfont字体图标,ico图标设置,版心1、如何使用iconfont字体图标IconFont,图标字体也叫字体图标,就是字体做的图标。可以通过设置字体的方式改变图标的样式,受到近些年扁平......
  • vite vue3 使用iconfont svg形式
    1.登录https://www.iconfont.cn/官网,把自己喜欢得图标添加到项目中2.按照标红的顺序选择把文件下载下来,下来以后解压缩把iconfont.js放到项目中3.写一个全局svgIcon.vu......