React App,在 React VS Vue 中使用 Font Awesome 品牌图标

Posted

技术标签:

【中文标题】React App,在 React VS Vue 中使用 Font Awesome 品牌图标【英文标题】:React App, Using Font Awesome brand icons in React VS Vue 【发布时间】:2019-05-04 03:59:50 【问题描述】:

我正在尝试使用 Font Awesome 中的品牌图标,我之前已经在 vue 应用程序中使用过它,它与使用常规的 svg 图标有点不同,因为品牌库与常规的实体 svg 图标是分开的。这就是我在 vue 应用程序中使用的方式。

// imports in the main.js file
import  library  from '@fortawesome/fontawesome-svg-core';
import  faCoffee  from '@fortawesome/free-solid-svg-icons';
import  FontAwesomeIcon  from '@fortawesome/vue-fontawesome';
import  faFacebookF  from '@fortawesome/free-brands-svg-icons';

library.add(faCoffee, faFacebookF);

Vue.component('fa-icon', FontAwesomeIcon)

// usage in a vue component - regular svg icons 
<fa-icon icon="coffee" />
// brand icon 
<fa-icon class="ic right" :icon="['fab', 'facebook-f']" />

现在我正在尝试在 React 应用程序中做类似的事情,但我有点卡在哪里以及如何导入和使用它,在 Vue 中,我在 main.js 中全局定义了 &lt;fa-icon /&gt;,但是React 的情况有些不同。这是我在反应组件中的尝试。

// imports in my app.js file 
import React from 'react';

import  library  from '@fortawesome/fontawesome-svg-core';
import  faCoffee  from '@fortawesome/free-solid-svg-icons';
import  FontAwesomeIcon  from '@fortawesome/react-fontawesome';
import  faFacebookF  from '@fortawesome/free-brands-svg-icons';

library.add(faCoffee, faFacebookF)
//this works 
<FontAwesomeIcon icon="coffee" />
//this does not
<FontAwesomeIcon icon="['fab', 'facebook-f']" />
提前致谢。

【问题讨论】:

【参考方案1】:
<FontAwesomeIcon icon=['fab', 'facebook-f'] />

https://www.npmjs.com/package/@fortawesome/react-fontawesome#build-a-library-to-reference-icons-throughout-your-app-more-conveniently

【讨论】:

【参考方案2】:

安装所有免费字体真棒图标 - 在您的项目位置使用 cmd:

 npm i --save @fortawesome/fontawesome-svg-core
 npm i --save @fortawesome/free-solid-svg-icons
 npm i --save @fortawesome/react-fontawesome
 npm i --save @fortawesome/free-brands-svg-icons
 npm i --save @fortawesome/free-regular-svg-icons

为 Font Awesome 导入这个:

import FontAwesomeIcon from "@fortawesome/react-fontawesome";

为你的 JSX 添加 Font Awesome:

<FontAwesomeIcon icon=faFacebookF></FontAwesomeIcon>
<FontAwesomeIcon icon=faTwitter/>
<FontAwesomeIcon icon=faGoogle/>

最后,从已安装的存储库中导入您的品牌图标:

import faFacebookF, faGoogle, faTwitter from "@fortawesome/free-brands-svg-icons";

【讨论】:

以上是关于React App,在 React VS Vue 中使用 Font Awesome 品牌图标的主要内容,如果未能解决你的问题,请参考以下文章

Blazor VS React / Angular / Vue.js

理性看待前端框架(库)之争(React Vs Vue)

2021年的前端框架选择 Angular vs React vs Vue

Vue vs React: Javascript 框架

2017 三大框架之争(战略篇):Angular vs React vs Vue

(ESLint)在 VS 2017 反应项目中找不到模块“eslint-config-react-app”