Oh MyUtils

SVG转JSX转换器 - SVG转React组件 在线

即时将SVG标记转换为React JSX、TSX或React Native组件。优化SVG属性,生成可复制的React代码。

输出格式
优化
包装为组件
组件名称
缩进
SVG输入
输出
 

常见问题

什么是SVG转JSX转换器?

SVG转JSX转换器将标准SVG标记转换为React应用程序可以使用的JSX语法。这包括将class转换为className,将连字符属性更改为驼峰命名法(例如,stroke-width变为strokeWidth),以及将内联样式转换为JavaScript对象。

为什么需要将SVG转换为JSX用于React?

React使用JSX,它与标准HTML有不同的语法要求。像class和stroke-width这样的SVG属性需要转换为className和strokeWidth。内联样式必须变成JavaScript对象。如果不转换,React会抛出警告或错误。

如何将SVG转换为JSX?

只需将您的SVG代码粘贴到输入框中,或拖放SVG文件。转换器会自动将其转换为有效的JSX。然后您可以将输出直接复制到React组件中。可选地,启用包装为组件选项以生成完整的React组件。

SVG优化有什么作用?

SVG优化会从您的SVG文件中删除不必要的数据,包括编辑器元数据(来自Illustrator、Figma或Sketch等工具)、XML声明、注释和空属性。这可以在不影响SVG外观的情况下减小文件大小。

我的SVG数据安全吗?

是的,绝对安全。此工具在您的浏览器中处理所有内容——您的SVG代码永远不会离开您的计算机。没有服务器上传,没有数据收集,也没有外部API调用。这使得它可以安全地用于专有图标和敏感的设计资产。

可以为React Native转换SVG吗?

可以!选择React Native选项卡以生成与react-native-svg库兼容的代码。这会将SVG标签转换为其React Native等效项(例如,svg变为Svg,path变为Path),并相应地调整属性。

支持TypeScript吗?

支持。选择TSX选项卡以生成带有TypeScript接口的正确类型的React组件。生成的组件将包含正确的FC(Function Component)声明和prop类型。

代码示例

// SVG to JSX attribute conversion
const svgAttrToJsx = {
  'class': 'className',
  'stroke-width': 'strokeWidth',
  'fill-rule': 'fillRule',
  'clip-path': 'clipPath',
};

// Convert hyphenated to camelCase
const toCamelCase = (str) =>
  str.replace(/-([a-z])/g, (_, letter) => letter.toUpperCase());

// Example usage
const attr = 'stroke-width';
const jsxAttr = svgAttrToJsx[attr] || toCamelCase(attr);
console.log(jsxAttr); // 'strokeWidth'

相关工具