React Native 中的 SVG 图像

已发表: 2023-02-10

如果您希望使用 React Native 创建高性能的跨平台移动应用程序,您可能想知道是否可以使用可缩放矢量图形 (SVG) 图像。 答案是肯定的! 在本文中,我们将向您展示如何使用 React Native 渲染 SVG 图像,以及如何使用流行的 React Nativesvg -uri 库从应用程序的资产中加载它们。

可以使用称为可缩放矢量图形 (SVG) 的基于 XML 的语言来描述二维矢量图形。 与 Web 不同,React Native 在其实现中不包含对 vogets 的支持。 几个 React Native 插件使您能够呈现 SVG。 最后,您将学习如何通过使用 props 将它们作为 React 组件进行交互来自定义 SVG。

如何在 React Native 中显示 Svg?

在 React Native 中有几种不同的方式来显示 SVG。 最简单的方法是使用内置的 Image 组件。 您还可以使用 react-native-svg 库。

它还与 iOS 和 Android 兼容; react-native-svg.icons 是在 react-native 中处理 SVG 的最佳方式。 如果您需要它在 expo 中工作,一种替代方法是使用 https://react-svgr.com/playground/ 并将道具的传播重新定位到 G 元素,而不是使用 SVG 根。 首先,将 metro.config.js 复制到您的 Metrofile,然后将其更新为这种格式。 将 CreditCard 导出为 jssx 元素,以便从 '../assets/CreditCard;' 导入 CreditCard 从 '../assets/CreditCard;' 导入它从 '../assets/CreditCard. 必须使用 react-native-svg-transformer 包将 .svg 文件导入 React 组件。 React native 不直接支持 .svg 文件格式,因此您必须先完成几个步骤才能使其正常工作。 有关如何在 act native e581eca59534 中使用 thesvg 的完整说明和示例,请访问 https://kumar2396jayant.medium.com/how-to-use-svg-in-react-native-e581eca59534 谢谢 Jayant kumar yadav博客文章。

可以通过访问 https://svg2jsx.com/ 将 a.svg 图像转换为 JSX,然后选择 react-native- svg 选项并安装它。 谢谢你! AamerAamer 1597 徽章采用青铜色饰面。 我将为那些将在 2022 年受到此错误影响的人建议一个解决方案。确保将 metro.config.js 文件设置为此默认设置。

如何在 React Native 中使用 Svg

这个问题没有答案,因为在 React Native 中显示 SVG 的最佳方式因项目而异。 但是,您可以使用一些技巧来完成此操作,例如从 react-native-svg 导入 Svg 和 Circle 组件,设置Svg 组件的宽度和高度属性,以及使用 Path 组件创建路径和轮廓。

React 与 Svg 一起工作吗?

React 与 Svg 一起工作吗?
图片来源 – wp

这个问题没有确定的答案,这取决于 React 的具体实现。 然而,一般来说,React 应该可以毫无问题地处理 SVG 图像。

XML 用于生成称为 sva 的矢量图形图像格式。 一些使用 SVG 的品牌包括 Twitter、YouTube、Udacity、Netflix 等。 因为 SVG 可以导入并直接在您的代码中使用,所以您可以将它们用作 React 组件。 HTML 用于在未作为单独文件加载时呈现图像。 要将 SVG 转换并导入到 React 组件中,需要使用 SVGR 库。 如果您还没有安装 Create React App,我建议您使用其他方法。 这个很棒的工具用于将 SVG 转换为 React 组件。

当在 DOM 中遇到这个时,通常会生成类似的东西。 除了提供对用户会话的额外可见性之外,LogRocket Redux 中间件包还可以更轻松地管理用户配置文件。 LogRocket 可用于存储所有与 Redux 相关的操作和数据。 此外,您可以使用它来分析应用程序的性能,包括 CPU 和内存使用率等指标。 通过免费监控改进您调试 React 应用程序的方式。

React Native 中的 Svg 图像

可缩放图形是 React Native 应用程序的绝佳选择。 它们轻巧、可扩展、可定制且易于制作动画。 使用图像标签,您可以快速将 SVG 文件导入您的应用程序。 此外,react-native-svg 支持多种平台上的 React Native,是一个优秀的跨平台开发平台。

React-native-svg 文档

React-native-svg 文档
图片来自 – githubusercontent

React-native-svg 为 iOS 和 Android 上的 React Native 提供SVG 支持,并包含各种内置的 SVG 形状。 这些文档全面概述了所有可用功能以及如何使用它们。

按照本指南,我们将演示如何使用 React Native 库 react-native-svg 实现可缩放矢量图形 (SVG)。 React Native 组件不支持直接 SVG 渲染。 为了使用 React Native,您需要从注册表安装适当的库,因为系统不支持矢量图形。 使用 react-native-svg 库从 React Native 应用导入和呈现 SVG。 Svg 和 Circle 组件可以与 >Svg> 组件结合使用。 这些组件中使用的 props 与原生 HTML 元素中使用的类似。 大多数 SVG 组件都是由这种类型的道具组成的。

如果您使用的是 React Native,则需要在您的项目中安装它。 为了指向 SVG 的 URL,SvgUri 组件包括它的宽度、高度和 uri 属性。 在 React 中渲染图像时,图像的 URL 由 itssrc 属性分配给它。 Flexbox 布局允许您在整个屏幕上放置 SVG 组件。 只要您的项目需要,您也可以使用此方法为您的应用创建不同的 SVG 图标。 *SvgXml 组件允许您直接从 XML 代码呈现 SVG。 在 React Native 应用程序中使用 XML 字符串呈现 SVG 是另一种方法。

世博会 React-native-svg

世博会 React-native-svg
图片来源 – nicesnippets

React Native SVG为您提供了一组可用于绘制图像的命令。 React Native SVG 最常见的用例是为您的应用创建自定义图标。 您可以使用 React Native SVG 创建各种形状,包括:圆形、矩形、线条,甚至文本。 此外,您可以使用 React Native SVG 来创建动画。

SVG 中的矢量可以缩放到任意大小而不会降低其质量。 在安卓的开发环境中一切似乎都运行顺利,但在加载文件时无法在发布模式下加载。 如果不分离它们,就不可能将您自己的本机模块添加到 Expo。 但是,还有一种组合 React Native 和 Expo 的替代方法。 步骤 1-12 中的第一步是将 iOS 和 Android原生 React Native SVG 支持添加到您的 Expo 应用程序。 在第 13 步中使用 .js 文件中的 react-native-svg 组件创建一个函数。第 14 步是将新的 SVG 组件导入 App.js 并将其用作 React Native 组件。 在开始测试项目之前,您必须先运行它。

反应本机 svg uri

React-native-svg-uri 是一个允许您在 React Native 应用程序中包含 SVG 图像的库。 它易于使用,并提供了一种将矢量图像添加到您的应用程序的简单方法。

React-native-svg 视图框

在 viewBox 属性中, SVG 视口是根据其在用户空间中的位置和尺寸定义的。 viewBox 属性表示用户空间中由空格分隔的矩形值,它表示四个数字:min-x、min-y、宽度和高度。 在这种情况下,视口的边界被映射到这个矩形。

React Native Platform 用户应该使用 sva 作为他们的主要实现。 每次将 SVG 添加到应用程序时,请确保包含 >SVG> 组件。 ViewBox 为 SVG 视口定义用户空间中的位置和尺寸。 您可以从配置节点中的 fill 属性开始。 SVG 库中最强大的元素是元素路径。 可以通过组合多条直线或曲线来生成复杂的形状。 折线可以由仅由直线形成的任何形状组成。

缺少直线意味着曲线不能很好地模拟并且不能很好地缩放到更大的尺寸。 react-native-vector-icons 包的 createIconSetFrom 方法执行一个特殊的功能。 这种方法需要原生调用,而不是重新计算整个组件,既费时又困难。 您可以使用 icomoon 或 fontawesome 等程序创建自己的字体。 因为每个图标都包含一个名称,并且名称从文件名中删除,所以如果需要,最好在导入文件后重命名文件。 你可以在网络上使用 HTML,但你不能使用 Foreign Object,它用于 Web 实现,意味着你不能将 JSX 放在里面。 添加嵌套的视图也可能有问题。 它受平台的 panResponder 行为的各个方面的高度影响。

从尺寸中获得具有 Windowheight 的完美视图

指定窗口的高度时,还必须指定其宽度。 有维度。 获取(窗口)。

反应本机 svg 变压器

React Native SVG 转换器是一个库,它提供了一种将 SVG 文件转换为 React Native 组件的方法。 它易于使用,并提供了一个简单的声明式 API,使其易于上手。

您可以使用 react-native-svg-transformer 库以与在 Web 应用程序中相同的方式在 React Native 项目中导入 .svg 文件。 这种代码匹配的方式可以让 React Native 和 Web 共享相同的代码。 TypeScript 需要包含此打字稿的 declaration.d 文件。 如果 svgrrc 文件不可用,您可以在项目的根文件夹中创建它(如果有)。 换句话说,用与 .svg 文件的填充属性匹配的十六进制代码行 replaceAttrValues,然后确保 .svg 文件中的路径标记填充给定值的代码(例如,#000)。 您的图像将用作此步骤中的组件。 它与开玩笑一词一起使用。 要使用 Jest 测试导入 .svg 图像的 React Native 组件,您必须创建此配置,它模拟图像。

Svgr – 用于轻松将 Svg 转换为 React 组件的 React Native 库

它是一个 React Native 库,可用于将静态 SVG转换为 React 组件。 必须先输入 SVG,然后才能将其转换为另一种格式,例如 React 的格式。 在将 SVG 文件的内容粘贴到 React-SVGR 中时,检查是否设置了本机复选框。 我们可以使用它将我们的输出复制并粘贴到我们的项目中。

React-native-svg 圆圈

React Native SVG 圆形组件是在您的应用程序中创建简单而优雅的形状的好方法。 它易于使用且用途广泛,可让您创建任何大小和颜色的圆圈。

在整个系列中,我们将介绍 React Native 的各个方面。 我们需要一个 React Native 应用程序来让 HTML5 工作。 需要修改此包以根据其版本以各种方式与应用程序兼容。 绘制我们自己的 SVG 的能力是一个令人兴奋的方面,但我们必须首先创建一个带有我们可以使用的图标的 SVG。 所有的 Feather 图标都是 React 组件。 如果我们有一个想要使用的 SVG 文件会怎样? Kristerkari 向我们介绍了 react-native-svg-transformer。

然后我们将更改我们的地铁配置以处理 SVG 转换。 如果我们希望它是彩色渲染的并且它是否完全可自定义,则我们必须提供一些参数,具体取决于 SVG。 在本文中,我们将介绍如何使用三种不同的方法在 React Native 中包含 SVG。 如果您能在下方发表评论或链接到作者的任何其他网站链接,我们将不胜感激。 取消发布后,Stephen Cavender 将无法再在网站上发帖,他的帖子将被隐藏。 他们仍然可以从他们的仪表板发布。

React-native-svg 过滤器

React-native-svg-filter 是一个允许您将 svg 过滤器应用于图像的库。 它易于使用,并为创建和应用过滤器提供了一个简单的界面。

在此视频中,Jaka Tertinek 解释了如何在 React Native 中处理图像。 它的过程比在 iOS 上(您可以拖放)更复杂。 所有文件都由Xcode和IDE处理(文件保存在Xcode中,文件保存在IDE中)。 一切设置完成后,它仍然简单易用。 当使用诸如 SVGR 之类的库来转换导入的 .svg 文件时,react-native-svg-transformer 允许您将 .svg 文件直接导入 React Native 项目,这与您在 Web 应用程序中的方式相同。 可以使用 sva 将图像转换为 React 组件。 该过程包括以下步骤。

React Native 可缩放矢量图形

React Native 可缩放矢量图形(SVG) 为 Web 上的矢量图形提供了基于 XML 的标准。 所有现代浏览器都支持它,可用于创建可缩放到任何屏幕尺寸的响应式设计。

Svg 格式非常适合 React Native

为了正确显示您的数据并在任何设备上呈现最佳效果,您必须使用最佳格式。 由于其规模, SVG 格式非常适合 React Native,因为它无法缩小。 通过将图形和图标合并到您的应用程序中,您将能够显示它们。 此外,除了使用动画和交互性之外,react-native-svg 还允许您使用 SVG 创建动画和交互性。 由于其动态特性,它非常适合显示动态和交互式图形和图标。 由于能够无限缩放并支持交互式和动画图形,svg 是 React Native 的最佳格式。

原生 Svg 转换器

没有所谓的“原生 svg 转换器”。 SVG 是一种矢量图形格式,因此可以应用于矢量图形的任何变换都可以应用于 SVG 文件。 但是,大多数矢量图形编辑器都没有内置特定的 SVG 转换功能。

如果您使用 react-native-svg-transformer,您可以像在 Web 应用程序中一样导入 .svg 文件。 因此,用于创建 React Native 和 Web 的代码可以共享。 如果您使用 TypeScript,可以将其添加到声明中。 如果您还没有 d.ts 文件,您可以创建一个(确保它位于其他地方)。 文件(无法在项目的根文件夹中找到)到 makesvgrrc。 为 replaceAttrValues 创建一行,将十六进制代码与 props.fill 匹配,然后将您在 .svg 文件填充属性中创建的路径标记复制到 ReplaceAttrValues 字段(在本例中为 #000)。 然后,您可以将图像用作组件。 这已与动词开玩笑一起使用。 要测试从 .svg 导入的 React Native 组件的图像完整性,您需要添加此模拟图像配置。

什么是 Svgr?

SVGR 通用工具可以将 SVG 转换为 React 组件。

我如何在 React Native Expo 中使用 Svg?

输入 SVG 时,可以将其转换为适用于 React 的新格式,例如 JPEG 格式。 导出的 SVG 文件的内容可以通过选择本机按钮传输到 React-SVGR。 生成后,我们将能够将其输出复制并粘贴到我们的项目中。

如何在 React Native 中更改 Svg 颜色?

在 React 中更改 SVG 的颜色时,不要设置 fill 和 stroke 属性。 导入组件时,使用 SVG 作为组件。 应设置组件的填充和描边属性,例如 *My Logo 填充和描边 *黄色[/arrow]