如何使用 react-svg 创建高度可重复使用的图标组件有更好的方法给它一些风格

2025-06-10

如何使用 react-svg 创建高度可重用的 Icon 组件

有更好的方法

赋予它一些风格

您知道, SVG 的速度非常快,而且易于访问

SVG 在 webdev 中最酷的事情是 CSS 可以简单地与它协同工作,因此你可以执行以下操作:

path {
  fill: red;
}
Enter fullscreen mode Exit fullscreen mode

然后你的图标就变成红色了。

需要放大或缩小吗?SVG 中的 S 代表“可缩放”,所以你可以直接把图标放大到浏览器可以处理的大小

svg {
  width: 33554400px;
  height: 33554400px;
}
Enter fullscreen mode Exit fullscreen mode

然而,我们可能在这里遇到了一个问题,这篇文章是关于 React 的,但在 React 中单独导入 SVG 文件很麻烦……😩

有更好的方法

您可以使用名为 的库,将 SVG 的 CSS 样式功能与 React 组件结合使用react-svg。该库的工作原理是获取、缓存和内联 SVG 图标,因此您只需担心它们的样式设置。

这是有关如何创建图标组件的分步指南,相信我,使用它真的很愉快。

1 - 创建一个 /icons 文件夹,并将所有你喜欢的图标塞进去

2 - 创建一个包装 ReactSVG 的 Icon 组件:

import React from "react";
import ReactSVG from "react-svg";

const Icon = (props) => {
  return <ReactSVG src="YOUR_PATH/icons/${props.name}.svg" />;
}

export default Icon;
Enter fullscreen mode Exit fullscreen mode

3-导入您的 Icon 组件并像这样使用它:

import React from "react";
import Icon from "./Icon";

const IconList = () {
  return (
    <div>
      <Icon name="user" />
      <Icon name="calendar" />
      <Icon name="phone" />
      <Icon name="email" />
    </div>
  );
}

export default IconList;
Enter fullscreen mode Exit fullscreen mode

你能体会到它的美妙之处吗?每次需要新图标时,再也不用费力地导入图标了。只需将文件添加到图标文件夹,将其名称作为 prop 传递给全新的 Icon 组件,一切就绪了。

现在,让我们进一步了解这个 Icon 组件,并使其更加有用。

赋予它一些风格

你看到我们是如何使用nameprop 来获取正确的图标文件的了吗?我们也可以做同样的事情来选择正确的图标颜色和大小。

我们所需要的是一个 CSS-in-JS 库来充当我们的 SVG 文件和 Icon 组件之间的粘合剂,在下面的示例中使用 Styled Components,但任何其他库都可以。

来,看看吧。嵌入空间非常有限,所以请随意点击“打开沙盒”按钮,玩一会儿,记得回来。🙂

是不是很棒?我最喜欢这种方法的地方在于,经过一些初始设置后,添加新图标就像将 SVG 文件拖到图标文件夹一样简单。而且,能够直接在组件属性中设置样式,这绝对是一大亮点。

就这样!感谢Unsplash 上Harpal Singh提供的封面照片。

如果您对该示例有任何疑问,请在评论中分享!


嘿,我们联系吧👋

在 Twitter 上关注我并告诉我您喜欢这篇文章!

如果你真的喜欢它,请务必与你的朋友分享,这会对我有很大帮助😄

鏂囩珷鏉ユ簮锛�https://dev.to/vtrpldn/how-to-create-an-extremelly-reusable-icon-component-with-react-svg-1a7
PREV
我获得了16周连续记录徽章。以下是我学到的关于坚持的一切
NEXT
如何将大对象或数组从控制台复制到剪贴板