reactjs 如何在盖茨比中使用Font Awesome这样的图标

mutmk8jj  于 2023-01-04  发布在  React
关注(0)|答案(5)|浏览(124)

我想使用字体真棒图标在我的盖茨比项目。我很乐意包括字体真棒与CDN。
仅仅把它包含在一个脚本标签中是不行的。我想我需要用import ... from '../fontawesome.css'导入它,但是我不能让它工作,我也想用cdn来做这个。或者我需要用盖茨比的css库来解析它吗?
请给予我建议或提示如何做这件事。

rjee0c15

rjee0c151#

对于任何在2018年后期访问此页面的人,我强烈推荐使用react-icons

import { FaBeer } from 'react-icons/fa';

class Question extends React.Component {
    render() {
        return <h3> Lets go for a <FaBeer />? </h3>
    }
}
bpzcxfmw

bpzcxfmw2#

最好将应用所需的每个模块都包含在一个JS中,但如果您仍然希望使用CDN,只需复制并编辑默认模板即可:

cp .cache/default-html.js src/html.js

如果您想将font-awesome打包到项目包中,您可以选择:

对于最后一个选项,您必须移动pages文件夹中的css和fonts,然后在js文件中包含fa。

import './css/font-awesome.css'

要使用font-awesome类,请使用className属性

<i className="fa fa-twitter"></i>

如果要从CDN获取js代码,请使用Netlify

k4ymrczo

k4ymrczo3#

以下是在Gatsby中使用Font-Awesome图标的推荐方法:
LayoutPage等高级组件中添加以下代码片段(在官方react-fontawesome docs中提到)。

import { library } from '@fortawesome/fontawesome-svg-core'
import { fab } from '@fortawesome/free-brands-svg-icons'
import { faCheckSquare, faCoffee  } from '@fortawesome/free-solid-svg-icons'

library.add(fab, faCheckSquare, faCoffee)

第一个npm install -Simport自由品牌svg-icons或/和自由实体svg-icons(仅当您需要它们的图标时)。
然后在每个使用图标的组件中添加以下代码:
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"
现在在组件中使用它,如下所示:
<FontAwesomeIcon icon={["fab", "apple"]} style={{color:"#000000"}} />
我相信这是在这一步的地方出错。你需要包括'晶圆厂'在icon prop 如上所示,如果你是添加品牌图标。否则,如果使用(比方说)实心图标,然后进入脊柱(例如,方格)样式的图标名称,在icon prop中没有[]括起括号,而不是camelCase(checkSquare)并且不需要在开头包含'fa'。

qeeaahzv

qeeaahzv4#

只是对上一条注解的补充。你需要传递一个arrayicon属性的原因是因为FontAwesomeIcon组件中使用的默认前缀是fas。所以如果你从@fortawesome/free-solid-svg-icons提供图标(例如faHome),你不需要添加前缀。

<FontAwesomeIcon icon={home} />

对于所有其他软件包,例如'@fortawesome/free-brands-svg-icons',您必须为指定前缀的图标提供数组

<FontAwesomeIcon icon={["fab", "laravel"]} />

另外,很高兴知道的是,你不需要导入所有的fab图标到你的库中。与实心图标(“fas”)一样,你可以只导入你需要的图标,然后将它们添加到库中。

// fab icon (brand)    
import { faLaravel } from "@fortawesome/free-brands-svg-icons"
// fas icon (solid)
import { faHome } from "@fortawesome/free-solid-svg-icons"
library.add(faHome, faLaravel)
tjjdgumg

tjjdgumg5#

最简单的解决方案是在layout.jsHelmet〉标记中添加字体令人敬畏的脚本:

<Helmet>
    <html lang={site.lang} />
    <link
        rel="shortcut icon"
        type="image/x-icon"
        href={Favicon}
    ></link>
    {/* adding google fonts */}
    <link href="https://fonts.googleapis.com/css?family=Caveat" rel="stylesheet"/>
    {/* adding font-awesome icons */}
    <script src="https://kit.fontawesome.com/02130b3d51.js" crossorigin="anonymous"></script>
    <style type="text/css">{`${site.codeinjection_styles}`}</style>
    <body className={bodyClass} />
</Helmet>

现在添加简单,字体真棒图标在任何时候你喜欢:

<h2 onClick={scrollToBottom} style={buttonStyle} className="scroll-btn" aria-label="to bottom" component="span">
    {/* adding font-awesome icon */}
    <i className="fas fa-arrow-alt-circle-down"></i>
</h2>

就这么简单!!

相关问题