npm 包 @svgr/cli 使用教程

什么是 @svgr/cli

@svgr/cli 是一个可以将 SVG 图像转换为 React 组件的 npm 包。它的转换精确且支持几乎所有的 SVG 规范。转换后的 React 组件还可以轻松地进行定制和扩展使用。

安装 @svgr/cli

在安装 @svgr/cli 之前,你需要先确认 npm 或 yarn 已经安装在你的电脑上。

安装 npm 包

--- ------- -- ---------

安装 yarn 包

---- ------ --- ---------

使用 @svgr/cli

@svgr/cli 支持从一个或多个 SVG 文件(.svg)转换为 React 组件(.js 或 .jsx)。下面是使用 @svgr/cli 的简单方法:

--- --------- -------------- -- -------------

在上述命令中,我们将 helloworld.svg 转换为 HelloWorld.js。你也可以指定一个目录来转换多个 SVG 文件。例如:

--- --------- ------ -------- ----- --- --------- -- --------------------

在上述命令中,我们将 src/icons 目录中的所有 SVG 文件转换为 TypeScript 类型的 React 组件,并且将它们保存在 src/components/icons 目录。

除了简单的转换之外,@svgr/cli 还支持一系列可选参数来控制输出的 React 组件的格式和代码风格。

@svgr/cli 可选参数

--config(-c)

使用指定的配置文件处理 SVG 文件。该配置文件可以包含以下字段:

  • icon: boolean

    是否将 SVG 文件转换为 React 图标组件。

    默认值:false

  • native: boolean

    是否将 SVG 文件转换为原生 React 组件。

    默认值:false

  • dimensions: boolean

    是否为 React 中的 SVG 组件保留原始宽度和高度。

    默认值:false

  • replaceAttrValues: object

    一个键值对对象,用于指定要替换的 SVG 属性值。键名为要替换的属性名,键值为用于替换属性值的字符串或函数。

    默认值:{}

  • svgProps: object

    一个键值对对象,用于设置 SVG 组件的属性。键名为要设置的属性名,键值为属性值。

    默认值:{}

  • titleProp: boolean

    是否将 SVG 文件中的 <title> 元素的内容转换为 React 属性。

    默认值:true

  • ref: string

    指定生成 React 组件的 ref 名称。

    默认值:null

  • template: string

    指定一个自定义代码模板文件用于生成 React 组件。

    默认值:.svgrrc.js 文件中的 template 字段。

  • plugins: array

    一个存放配置项的数组。

    默认值:.svgrrc.js 文件中的 plugins 字段。

--icon

将 SVG 文件转换为 React 图标组件。

--native

将 SVG 文件转换为原生 React 组件。

--dimensions

为 React 中的 SVG 组件保留原始宽度和高度。

--replaceAttrValues

一个键值对对象,用于指定要替换的 SVG 属性值。键名为要替换的属性名,键值为用于替换属性值的字符串或函数。

--svgProps

一个键值对对象,用于设置 SVG 组件的属性。键名为要设置的属性名,键值为属性值。

--titleProp

是否将 SVG 文件中的 <title> 元素的内容转换为 React 属性。

--ref

指定生成 React 组件的 ref 名称。

--template

指定一个自定义代码模板文件用于生成 React 组件。

--plugins

一个存放配置项的数组。

示例代码

以下是一个使用 @svgr/cli 将 SVG 文件转换为 React 组件的示例代码:

------ ----- ---- --------
------ - -------------- -- ---- - ---- -------------

-------- ----- -
  ------ -
    ---- ----------------
      ----- --
    ------
  --
-

------ ------- ----

在上述代码中,我们首先导入了从 ./logo.svg 文件自动生成的 React 组件 Logo,然后将其用作 App 组件中的一部分。

总结

本文介绍了 @svgr/cli 库的基本用法和可选参数。通过使用它,你可以将 SVG 文件转换为 React 组件,并使用生成的 React 组件定制和扩展你的应用程序。无论你是个新手还是一个经验丰富的前端开发者,@svgr/cli 都值得一试。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/148141


猜你喜欢

  • npm包 bonce 使用教程

    简介 在前端开发中,我们经常需要处理用户在短时间内频繁触发某个事件的情况,例如:在快速输入搜索框中,可能会想要在用户停止输入之后再进行搜索,而不是在每次用户输入时都去请求接口。

    5 年前
  • npm 包 "@types/text-encoding-utf-8" 使用教程

    npm 包 "@types/text-encoding-utf-8" 使用教程 简介 在前端开发过程中,我们经常需要对字符串进行编码和解码操作。而随着 Unicode 的广泛应用和各种编码方式的出现,...

    5 年前
  • npm 包 @types/flatbuffers 使用教程

    前言 在前端开发中,我们经常需要对数据进行序列化和反序列化的操作。FlatBuffers 是一种高效的序列化和反序列化框架。而 @types/flatbuffers 这个 npm 包则提供了 Type...

    5 年前
  • npm 包 micro-serve 使用教程

    micro-serve 是一个轻量级的静态文件服务器,它可以方便地将一个文件夹作为根目录设置为静态文件服务器并监听端口。 安装 我们可以使用 npm 全局安装 micro-serve: --- ---...

    5 年前
  • npm 包 icecast 使用教程

    介绍 icecast 是一个用于流媒体服务器的 npm 包,允许用户将音频流广播到多个平台,如 iTunes,Winamp 和 VLC。它基于 Icecast2(流媒体服务器)和 Node.js 构...

    5 年前
  • npm 包 injekt 使用教程

    什么是 injekt injekt 是一个前端开发中常用的依赖注入工具,它可以帮助我们更好地管理和维护应用程序中的各种依赖关系,使得应用程序的开发更加高效和简洁。 安装 injekt 可以通过 npm...

    5 年前
  • npm 包 grunt-livescript 使用教程

    grunt-livescript 是一个基于 Node.js 平台的任务运行器 grunt 的插件,它可以让你使用 LiveScript 编写 Grunt 任务。 本文将详细介绍如何使用 npm 包 ...

    5 年前
  • npm 包 scribble 使用教程

    介绍 在前端开发领域,我们经常需要制作一些简单的草图或手写图,这些图可以作为原型或参考,在设计和开发时起到重要的作用。然而,手写图的制作过程不仅耗时费力,而且对于没有良好的绘画基础的人来说,更是一件难...

    5 年前
  • npm 包 @oursci/measurements-ui 使用教程

    在前端开发中,常常需要处理各种测量单位的转换和显示。@oursci/measurements-ui 是一个基于 Vue.js 的 UI 框架,可以方便地显示各种单位的数值,包括长度、重量、温度、时间等...

    5 年前
  • npm 包 highbrow 使用教程

    简介 highbrow 是一个开源的 JavaScript 库,用于在 web 应用程序中生成高级表单,具有可自定义的输入样式、验证支持及管理表单的能力。本文将介绍如何使用 highbrow 库以及如...

    5 年前
  • npm 包 @types/three 使用教程

    前言 在前端开发中,3D 视觉效果在当代 WEB 开发中起到越来越重要的作用,在此之中,Three.js 作为热门的 3D 渲染引擎之一,成为了广大前端开发者的首选之一。

    5 年前
  • npm 包 number-of-cases 使用教程

    number-of-cases 是一个非常实用的 npm 包,它可以帮助我们在 JavaScript 中快速计算出几种不同情况的组合数。在前端开发中,我们经常需要计算出不同情况的组合数,比如在选择框中...

    5 年前
  • npm 包 econ 使用教程

    介绍 econ 是一个能够生成经济学图表的 npm 包。它可以帮助前端开发人员更加便捷地展示统计学数据,并为经济学研究者提供更直观的数据视觉化。 安装 使用 npm 指令安装 econ: --- --...

    5 年前
  • npm包cagen使用教程

    前言 在前端开发中,有时我们需要在页面中显示随机的验证码或者占位图片。这个时候,我们可以使用npm包cagen来帮助我们完成这项工作。cagen是一个随机图片生成器,支持生成多种类型的图片,比如占位图...

    5 年前
  • npm 包 @types/tstl 使用教程

    在前端开发中,使用类型化的 JavaScript 是一种很好的方式,可以提高代码的可读性、稳定性和可维护性。而 TypeScript 就是一种支持类型化的 JavaScript 的编程语言。

    5 年前
  • npm 包 boxalino 使用教程

    简介 Boxalino 是一个强大的实时个性化搜索和推荐引擎。因为它是一个基于云的服务,所以我们可以很容易地将其集成到我们的项目中,以提高我们网站的搜索和推荐功能。

    5 年前
  • npm 包 @types/samchon 使用教程

    前言 在前端开发中,经常会用到一些功能较强大的库或框架,这些工具能大幅提升我们的开发效率,但是在使用时往往也会遇到一些困难和问题。其中一项问题就是类型定义(Type Definition)问题,特别是...

    5 年前
  • npm 包 @types/websocket 使用教程

    简介 WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。它是为了在 Web 浏览器和服务器之间提供基于标准的跨程序通信的功能而设计的。 npm 是一个包管理工具,用于在 JavaS...

    5 年前
  • npm 包 url-variables 使用教程

    前言 在前端开发中,经常需要从 URL 中获取参数,并根据参数的值决定后续的操作。通常情况下,我们使用正则表达式或字符串操作等方式来解析 URL 中的参数。但是,这些方法不够简便和实用。

    5 年前
  • npm 包 sxml 使用教程

    介绍 sxml 是一款基于 JavaScript 的 XML 序列化和反序列化工具,它可以方便地将 XML 数据转换成 JavaScript 对象,并且可以将 JavaScript 对象转换成符合 X...

    5 年前

相关推荐

    暂无文章