React 中的 SVG:最常见的使用方式

已发表: 2022-12-20

如果你想在 React 中使用可缩放矢量图形 (SVG),有几种不同的方法可以实现。 在本文中,我们将了解在 React 中使用 SVG 的一些最常见方法,以及如何使用每种方法创建简单或复杂的 SVG 图像。

XML 是一种可用于创建矢量图形的数据结构。 一些品牌,如 Twitter、YouTube、Udacity 和 Netflix,使用 SVG 来使用他们的图像和图标。 如果您愿意,可以直接在代码中导入和使用 React SVG。 因此,图像和 HTML 是分开呈现的。 CRA 使用 SVGR 作为其基础设施的一部分,以便允许它转换和导入 SVG 作为 React 组件。 如果您没有Create React App ,寻找其他方法是个好主意。 使用 SVGR 工具,您可以将您的 .

V 文件到 React 组件中。 这通常会作为项目的一部分被翻译成 DOM。 LogRocket Redux 的中间件包为您的用户会话增加了一层额外的可见性。 LogRocket 可以存储所有 Redux 相关的动作和信息。 除了监控其 CPU 负载、内存使用和其他指标外,它还会报告您的应用程序的性能。 通过免费监控改进您调试React 应用程序的方式。

因为 JSX 支持svg 标签,我们可以使用我们的 React 组件直接复制粘贴 SVG。 由于此方法允许您通过 SVG 充分利用 HTML,因此实现起来很简单。 因为 SVG 是 XML 格式,所以可以实现该方法。

你可以使用 instead 而不是 instead。 如果您使用的是React Native应用程序,则应该使用 sva。 SVG 格式是一种基于矢量的格式,没有大小限制。

可以使用“svg”标签将图像直接写入 HTML 文档。 这是通过使用SVG 图像作为模板、将代码复制到其中并将其添加到 HTML 文档的 body> 元素来实现的。

React 与 Svg 一起工作吗?

React 与 Svg 一起工作吗?
图片来源:logrocket

是的,React 与 SVG 一起工作。 React 是一个用于构建用户界面的声明式、高效且灵活的 JavaScript 库。 它适用于各种SVG 库,包括 D3 和 Snap。

VG 是一种基于文本的图像格式,具有出色的可扩展性和性能。 SVG 的强大之处在于它们的可扩展性、灵活性、轻量级和易于制作动画。 当图像被缩小或放大时,它不会降低质量,使其在各种屏幕尺寸上比其他图像格式更有效。 导入 SVG 是 React 中可用的选项之一。 在这种情况下,最简单的方法是使用 img src 属性。 另一种方法是将常规 SVG 标签转换为 JSX 以在 JSX 格式中做出反应。 使用 SVGR 将原始图像转换为 React 组件。

我们可以通过根据 React应用程序组件的条件渲染它们来更有效地使用 React SVG。 本教程将基于一个带有打开和关闭 SVG 图标的汉堡包。 使用 CSS 为组件设置动画的能力是使 sva vogets 具有可扩展性和高分辨率的功能之一。 sva 图像形式的文本文件完全基于 XML。 任何文本编辑器都可以轻松创建、动画化和修改它们。 使用生成 SVG 的图像生成器,您可以轻松地将图像缩放到任意大小而不会降低质量。 使用 Web Animation API、WebGL、CSS 动画和其他技术,您可以制作 SVG 动画。

如何在 React Native 中使用 Svgs

您可以通过多种方式在 React Native 中使用 SVG。 在初始化项目的情况下,React Native CLI 允许您使用图像源属性导入 SVG 文件。 要导入 yoursvg,请导航至/path/to/image/yoursvg。 如果你不想使用 React Native,你也可以使用 Expo CLI 安装 react-native-svg。 安装后,以这种方式使用它:从您的本机 HTML 格式导入 yoursvg; *br 使用 React Native 时,SVG 最常见的用例是作为图标。 react-native-svg-symbols 包允许您从SVG 文件生成图标。 在 React Native 中,您还可以使用来自这些类型的 SVG 的图像作为您应用程序的背景。 使用 react-native-svg-image-placeholder 包为您的应用制作占位符图像。

如何在 Create React App 中使用 Svg?

如果你想在 create-react-app 中使用 SVG,那么你需要运行以下命令来安装 svg-inline-loader:
npm 安装 svg-inline-loader –save-dev
安装加载程序后,您可以通过将以下行添加到 webpack.config.js 文件来使用它:
模块.exports = {
模块: {
规则:[
{
测试:/\.svg$/,
装载机:'svg-inline-loader'
}
]
}
};

可缩放矢量图形 (SVG) 文件是可以一次放大的文件。 XML 是用于指定基于矢量的图形的标准格式。 与位图图像不同,SVG 图像在放大时会保留形状。 在 React 中使用 SVG 可以通过多种方式完成。 我们将详细介绍每一个。 使用 img 标签,Create React App 嵌入了标志 SVG ,它在单独的文件 src/image.svg 中定义。 import 语句指定 webpack 在第 2 行使用此图像。

这个函数也可以直接使用第5行:导入图片是最常用的方法,虽然两种方法都可以。 使用 SVG 文件作为 React 组件的好处很多。 它是一个非常灵活的工具,可以用来在短时间内建立一个网站。 VSCode 还包括许多扩展。 如果您想查看代码,请查看 GitHub GitHub gist,它有 256 行。

Create React App 的优缺点

Create React App 存在很多问题,首先是它本质上是一个捆绑应用程序。 如果您想使用不同的库,例如 React Router 或 Redux,您必须手动将其捆绑到您的项目中。 如果您只想使用几个库,这没什么大不了的,但是如果您使用很多不同的库,它就会变得非常乏味。 Create React App 应用程序与 React 有着重要的联系。 要使用 Redux 的功能,必须找到解决方法。 创建一个基本的 Redux 项目,例如 create-react-app-redux-starter,需要添加一些额外的行来处理状态更新。 存在其他基于 React 的样板,例如 Create React App React,它试图解决其中一些问题但并不完美。 你必须决定是否使用 Create React App,但我建议先使用另一个样板。

创建 React App Svg

使用 create-react-app 命令行工具,您可以轻松创建包含 SVG 文件的 React 应用程序。 只需运行 create-react-app 命令,后跟您的应用程序名称,并包含 –svg 标志。 这将创建一个新的 React 应用程序,其中包含使用 SVG 文件所需的所有依赖项。

作为光栅图像的替代品,SVG 是一种轻量级、可无限缩放的文件格式。 当嵌入到 HTML 中时,它也可以在 CSS 中设置样式和动画。 SVG 可以通过多种方式在 React 应用程序中使用。 我们将在以下示例中了解是什么让 sva 如此出色。 您可以使用 SVG 创建一些非常酷的东西,例如文本动画。 然后,我们将跳入 React 以获得更精致的外观。 我们将使用相当长的图形来创建这个项目; 这是主要部分的列表。

使用 SVG,您可以创建放置在受 adef 保护的块内的对象。 形状、路径、过滤器和渐变图像,如上图所示。 可以通过以下标签找到它:引用它的 id。 SVG除此之外还能做什么? 在此示例中,我们将通过说明如何创建 SVG 来向您展示如何使用 React 即时执行此操作。 借助语义代码的强大功能,可以在代码中轻松创建模式并且非常灵活。 我们可以记住的一个文件是浇头,可以用不同的方式将其放在比萨饼上。 此练习需要在比萨最困难的部分使用配料。

当我们在正确的上下文中使用 SVG 时,它可以毫不费力地用于丰富React 网站和应用程序。 我们将需要制作一个动画,其中在更新比萨饼时浇头落在比萨饼上面。 该代码可从 GitHub 下载。 没有太多关于 SVG 酷炫的讨论。 然而,SVG 中存在缺陷。