什么是 ReactComponent,在 React 中导入 svg 时它来自哪里?

What is ReactComponent and where does it come from when importing an svg in React?

我正在学习教程,其中有一个 .svg 文件作为组件导入。代码行是:

import {ReactComponent as OfferIcon} from '../assets/svg/localOfferIcon.svg';.

我知道 .svg 文件是作为组件导入的,但是,我不明白 ReactComponent 是从哪里来的?我检查了 .svg 文件,里面没有提到。这是导入 .svg 文件时的特殊关键字吗?如果有人可以指出我的文档,那也很好。

我假设您正在使用 Create React App。 Create React App 使用 SVGR 转换 .svg 文件,因此您只需将它们导入您的 React 应用程序。 svg 文件以导出名为“ReactComponent”的 React 组件的方式进行转换。这就是为什么您必须从文件中导入“ReactComponent”,然后将其重命名为您想要的任何名称!

在此 really nice blog post 中查找更多信息。基本上,你可以在你的 JSX 中使用 <svg> 标签。但是,如果你想导入 .svg 个文件,你将需要一个将文件内容转换为 React 组件的转换器,它只是 returns JSX 中的 <svg> 内容。