SVG in React-Komponente Umwandeln

Wandeln Sie SVG-Markup in produktionsfertige React-Komponenten mit automatischer JSX-Attributkonvertierung um.

Konvertieren Sie rohen SVG-Code sofort in saubere React-Komponenten. Wandelt SVG-Attribute automatisch in camelCase-JSX-Syntax um, konvertiert Inline-Styles in Objektnotation, unterstützt TypeScript mit typisierten Props, React.memo-Wrapper, forwardRef und konfigurierbare Exportstile. Die gesamte Verarbeitung läuft lokal in Ihrem Browser für maximale Privatsphäre und Geschwindigkeit.

Loading...
Deine Daten bleiben in deinem Browser
War dieses Tool hilfreich?
Anleitung

Anleitung

1
1

SVG Einfügen

Kopieren Sie den SVG-Code aus Ihrem Design-Tool oder Ihrer Icon-Bibliothek und fügen Sie ihn in das Eingabefeld ein.

2
2

Optionen Konfigurieren

Legen Sie den Komponentennamen fest, wählen Sie TypeScript oder JavaScript, und aktivieren Sie memo, forwardRef oder den Exportstil nach Bedarf.

3
3

Umwandeln und Kopieren

Klicken Sie auf Umwandeln, um die React-Komponente zu generieren. Kopieren Sie den Ausgabecode direkt in die Quelldateien Ihres Projekts.

Guide

Vollständiger Leitfaden zu SVG in React

Warum SVG in React-Komponenten Umwandeln

Die Verwendung von SVG als React-Komponenten gibt Ihnen die volle Kontrolle über Styling, Animationen und Interaktivität über Props. Im Gegensatz zu Bild-Tags oder CSS-Hintergründen können Inline-SVG-Komponenten auf Zustandsänderungen reagieren, dynamische Farben über Props akzeptieren und am React-Komponenten-Lebenszyklus teilnehmen. Dieser Ansatz ermöglicht auch Tree-Shaking; ungenutzte Icons werden automatisch von modernen Bundlern wie Webpack und Vite aus Produktions-Bundles ausgeschlossen.

Verständnis der JSX-Attributunterschiede

React verwendet camelCase für DOM-Attribute anstelle der Kebab-Case-Konvention von HTML. SVG hat viele Attribute mit Bindestrichen wie stroke-width, fill-opacity und clip-rule, die in JSX zu strokeWidth, fillOpacity und clipRule werden müssen. Das class-Attribut wird zu className, und Inline-Style-Strings müssen in JavaScript-Objekte mit camelCase-Eigenschaftsnamen und String- oder numerischen Werten konvertiert werden.

TypeScript und SVG Props

Die Verwendung von SVGProps<SVGSVGElement> aus Reacts Typdefinitionen gibt Ihrer Komponente vollständige Typsicherheit für alle gültigen SVG-Attribute. Das bedeutet, dass Verbraucher Autovervollständigung für Eigenschaften wie viewBox, fill, stroke, opacity und alle Präsentationsattribute erhalten. In Kombination mit Ihrer eigenen benutzerdefinierten Props-Schnittstelle erkennt TypeScript Attribut-Tippfehler und ungültige Werte zur Kompilierzeit statt zur Laufzeit.

Leistungsoptimierung mit memo und forwardRef

Das Umhüllen von Icon-Komponenten mit React.memo verhindert unnötige Neurenderings, wenn sich übergeordnete Komponenten aktualisieren, die Icon-Props aber unverändert bleiben. Dies ist besonders vorteilhaft bei Listenansichten mit vielen Icons. Der forwardRef-Wrapper ermöglicht übergeordneten Komponenten den direkten Zugriff auf den SVG-DOM-Knoten für Messungen, Intersection Observer oder imperative Animationen, ohne die Komponentenabstraktion zu brechen.

Examples

Durchgearbeitete Beispiele

Beispiel: Einfache Icon-Konvertierung

Gegeben: Ein einfaches SVG-Kreis-Icon mit Strich-Attributen.

1

Schritt 1: <svg viewBox="0 0 24 24" fill="none" stroke-width="2"><circle cx="12" cy="12" r="10" /></svg> in die Eingabe einfügen.

2

Schritt 2: Komponentenname als CircleIcon festlegen und TypeScript aktivieren.

3

Schritt 3: Auf In React Umwandeln klicken.

Ergebnis: Eine typisierte React-Komponente mit strokeWidth in camelCase konvertiert und SVGProps auf dem Wurzelelement verteilt.

Beispiel: Komplexer Path mit Styles

Gegeben: Ein SVG-Path-Element mit Inline-Styles und mehreren Kebab-Case-Attributen.

1

Schritt 1: SVG mit style="fill:red;stroke-width:2" und Attributen wie fill-rule und clip-path einfügen.

2

Schritt 2: Die Optionen memo und forwardRef aktivieren.

3

Schritt 3: Auf Umwandeln klicken und das Style-Objekt und die camelCase-Konvertierungen beobachten.

Ergebnis: Eine memo-umhüllte, forwardRef-Komponente mit style={{ fill: 'red', strokeWidth: 2 }} und camelCase-Attributen.

Anwendungsfälle

Anwendungsfälle

Erstellung einer Icon-Bibliothek

Konvertieren Sie eine Sammlung von SVG-Icons aus Design-Tools wie Figma oder Sketch in typisierte React-Komponenten. Jedes Icon wird zu einer wiederverwendbaren Komponente mit SVGProps-Unterstützung, die ein konsistentes Styling über Props wie className, fill und stroke in Ihrer gesamten Anwendung ermöglicht.

Integration in das Design-System

Transformieren Sie SVG-Illustrationen und -Grafiken in korrekt typisierte React-Komponenten für Ihr Design-System. Die Verwendung der forwardRef- und memo-Optionen stellt sicher, dass sich diese Komponenten nahtlos in Animationsbibliotheken, Tooltip-Trigger und andere ref-abhängige Muster integrieren und gleichzeitig die Renderleistung optimieren.

Migration von Alt-SVG

Migrieren Sie Inline-SVG-Elemente aus älteren HTML-Vorlagen in moderne React-Codebasen. Der Konverter übernimmt alle Attributtransformationen automatisch; konvertiert class zu className, Kebab-Case zu camelCase und Inline-Style-Strings zu JavaScript-Objekten, was Stunden mühsamer manueller Konvertierungsarbeit spart.

Häufig Gestellte Fragen

?Welche SVG-Attribute werden konvertiert?

Alle gängigen SVG-Attribute werden in ihre React-JSX-Äquivalente konvertiert. Dies umfasst stroke-width zu strokeWidth, fill-rule zu fillRule, clip-path zu clipPath und class zu className.

?Werden Inline-Styles behandelt?

Ja. Inline-Style-Strings wie style="fill:red;stroke-width:2" werden in React-Style-Objekte mit camelCase-Eigenschaften und korrekt typisierten Werten konvertiert.

?Was macht die forwardRef-Option?

Sie umhüllt die Komponente mit React.forwardRef, sodass übergeordnete Komponenten über Refs auf das zugrunde liegende SVG-DOM-Element für Animationen, Messungen oder Fokus-Verwaltung zugreifen können.

?Warum xmlns entfernen?

Das xmlns-Attribut ist für eigenständige SVG-Dateien erforderlich, aber in JSX unnötig, da React den Namespace automatisch verwaltet. Das Entfernen hält Ihre Komponenten sauberer.

?Kann ich die Ausgabe in Next.js verwenden?

Ja. Die generierten Komponenten funktionieren in jedem React-Framework einschließlich Next.js, Remix und Gatsby. Für Server-Komponenten stellen Sie sicher, die 'use client'-Direktive bei Bedarf hinzuzufügen.

?Sind meine Daten bei der Nutzung dieses Tools privat?

Absolut. Die gesamte SVG-Konvertierung erfolgt vollständig in Ihrem Browser mit JavaScript. Kein Code wird an einen Server gesendet, was sicherstellt, dass Ihre Designs und Ihr Quellcode vollständig privat bleiben.

?Ist dieses Tool kostenlos?

Ja. Dieser SVG-zu-React-Konverter ist völlig kostenlos ohne Nutzungslimits, ohne Registrierung und ohne Einschränkungen beim generierten Komponentencode.

?Wird das viewBox-Attribut beibehalten?

Ja. Das viewBox-Attribut wird genau so beibehalten, wie es im Quell-SVG angegeben ist. Es übergibt auch zusätzliche Props an das Wurzel-SVG-Element für Laufzeit-Anpassungen.

Hilf uns besser zu werden

Wie gefällt Ihnen dieses Tool?

Jedes Tool bei Kitmul wird auf Basis echter Nutzeranfragen gebaut. Ihre Bewertung und Ihre Vorschläge helfen uns, Bugs zu beheben, fehlende Funktionen hinzuzufügen und die Tools zu bauen, die Sie wirklich brauchen.

Dieses Tool bewerten

Tippen Sie auf einen Stern, um uns zu sagen, wie nützlich dieses Tool für Sie war.

Vorschlag machen oder Bug melden

Eine Funktion fehlt? Einen Bug gefunden? Haben Sie eine Idee? Sagen Sie es uns und wir schauen es uns an.

Ähnliche Tools

Empfohlene Lektüre

Empfohlene Bücher über React, SVG und Frontend-Entwicklung

Als Amazon-Partner verdienen wir an qualifizierten Verkäufen.

Erweitern Sie Ihre Fähigkeiten

Professionelle Produkte für Frontend-Entwickler

Als Amazon-Partner verdienen wir an qualifizierten Verkäufen.

Newsletter

Erhalte Produktivitätstipps und Neue Tools Zuerst

Schließe dich Machern und Entwicklern an, die Datenschutz schätzen. Jede Ausgabe: neue Tools, Produktivitäts-Hacks und Updates — kein Spam.

Prioritätszugang zu neuen Tools
Jederzeit abbestellen, ohne Rückfragen