Kostenloser HTML-zu-JSX-Konverter
Wandle HTML-Markup in gültige JSX-Syntax für React-Komponenten und -Projekte um. Kostenlos, schnell und vollständig im Browser, ohne Anmeldung.
Aktualisiert am
HTML to JSX Converter
Convert HTML to JSX/TSX for React. Handles attributes, styles, SVG optimization, event handlers, and component wrapping.
Conversion Options
HTML Input
Conversion Reference
HTML Attributes
| class | → | className |
| for | → | htmlFor |
| tabindex | → | tabIndex |
| readonly | → | readOnly |
| maxlength | → | maxLength |
| disabled | → | disabled={true} |
| contenteditable | → | contentEditable |
| autocomplete | → | autoComplete |
Event Handlers
| onclick | → | onClick |
| onchange | → | onChange |
| onsubmit | → | onSubmit |
| onfocus | → | onFocus |
| onkeydown | → | onKeyDown |
| onmouseenter | → | onMouseEnter |
| ondblclick | → | onDblClick |
| onpointerdown | → | onPointerDown |
SVG Attributes
| stroke-width | → | strokeWidth |
| fill-rule | → | fillRule |
| clip-path | → | clipPath |
| font-size | → | fontSize |
| text-anchor | → | textAnchor |
| stop-color | → | stopColor |
| viewbox | → | viewBox |
| enable-background | → | enableBackground |
Other Conversions
| style="..." | → | style={{...}} |
| <!-- ... --> | → | {/* ... */} |
| <br> | → | <br /> |
| <img ...> | → | <img ... /> |
| <input ...> | → | <input ... /> |
| innerHTML="..." | → | dangerouslySet... |
| data-id="x" | → | data-id="x" |
| aria-label="x" | → | aria-label="x" |
About HTML to JSX Converter
This tool converts HTML to valid JSX/TSX syntax for React components. It handles all the differences between HTML and JSX including SVG attributes.
Features:
- JSX and TypeScript (TSX) output formats with proper typing
- Granular conversion options (class, for, styles, booleans, events, SVG)
- SVG attribute optimization (60+ SVG-specific conversions)
- Event handler extraction with context-aware TypeScript typing
- Component wrapping (function or arrow function) with props interface
- Three view modes: Output, Diff, and Side-by-Side comparison
- Auto-convert mode with 400ms debounce for real-time feedback
- Conversion statistics tracking all changes made
- Bulk conversion for multiple HTML snippets with Download All
- File upload support (.html, .htm, .svg, .xml files)
- Multiple sample templates (General HTML, SVG, Event Handlers)
- Copy to clipboard and download as .jsx or .tsx
- Conversion history saved to localStorage with relative timestamps
- Keyboard shortcut: Ctrl/Cmd + Enter to convert
- Advanced options: indent size, quote style, comment removal
- innerHTML to dangerouslySetInnerHTML conversion
- Preserves data-* and aria-* attributes unchanged
Privacy First: All processing happens locally in your browser. Your code is never sent to any server.
Related Tools
Häufig gestellte Fragen
Was ist der HTML-zu-JSX-Konverter?
Der HTML-zu-JSX-Konverter ist ein kostenloses Online-Tool, das HTML-Markup in gültige JSX-Syntax zur Verwendung in React-Komponenten umwandelt.
Ist HTML zu JSX kostenlos?
Ja, er ist völlig kostenlos und erfordert keine Registrierung. Die gesamte Konvertierung erfolgt clientseitig in deinem Browser.
Welche Änderungen nimmt er vor?
Der HTML-zu-JSX-Konverter ändert class in className, wandelt Inline-Styles in Objekte um, schließt leere Elemente selbst und behandelt weitere Unterschiede zwischen HTML und JSX.
Sind meine Daten mit diesem Tool sicher?
Absolut. Der HTML to JSX Converter verarbeitet alles clientseitig in deinem Browser. Es werden keine Daten auf einen Server hochgeladen oder dort gespeichert. Deine Inhalte bleiben jederzeit privat auf deinem Gerät.
Funktioniert der HTML to JSX Converter auf Mobilgeräten?
Ja, der HTML to JSX Converter ist vollständig responsiv und funktioniert auf Smartphones und Tablets. Du kannst ihn auf jedem Gerät mit einem modernen Webbrowser verwenden, ohne App-Download.
Muss ich ein Konto erstellen, um dieses Tool zu nutzen?
Es ist kein Konto und keine Registrierung erforderlich. Öffne einfach den HTML to JSX Converter in deinem Browser und beginne sofort mit der Nutzung. Es gibt keine Anmeldeschranken oder Nutzungsbeschränkungen.
Wie verwende ich den HTML to JSX Converter?
Gib einfach deine Eingabe in das vorgesehene Feld ein, passe die Einstellungen nach deinen Wünschen an, und das Tool verarbeitet sie sofort. Anschließend kannst du das Ergebnis in die Zwischenablage kopieren oder herunterladen.
Welche Browser werden unterstützt?
Der HTML to JSX Converter funktioniert in allen modernen Browsern, einschließlich Chrome, Firefox, Safari, Edge und Opera. Für das beste Erlebnis verwende die neueste Version deines bevorzugten Browsers.
Was ist der Unterschied zwischen HTML und JSX?
JSX sieht fast identisch zu HTML aus, ist aber JavaScript-Syntax, die zu React-Elementen kompiliert wird, und folgt daher den Regeln von JavaScript statt denen des Browsers. Die praktischen Unterschiede sind genau die Stellen, an denen kopiertes Markup bricht: Das HTML-Attribut "class" wird zu "className" und "for" wird zu "htmlFor", weil beide Begriffe in JavaScript reserviert sind. Mehrteilige Attribute wie "tabindex" und "maxlength" werden in camelCase zu "tabIndex" und "maxLength", Inline-"style"-Strings werden zu JavaScript-Objekten, und Void-Tags wie "<img>" und "<br>" müssen explizit selbst geschlossen werden. Außerdem erwartet JSX ein einziges Wurzelelement, sodass Geschwister-Tags einen Wrapper oder ein Fragment benötigen. Diese mechanischen Umschreibungen übersieht man von Hand in einer großen Datei leicht. Fügen Sie Ihr HTML oben ein, und der Konverter wendet all diese Regeln sofort an, sodass die Ausgabe direkt in eine React-Komponente passt.
Warum meldet React, dass 'class' eine ungültige DOM-Eigenschaft ist?
React zeigt diese Warnung, weil "class" ein reserviertes Schlüsselwort in JavaScript ist und JSX zu JavaScript kompiliert wird, nicht zu rohem HTML. Um Konflikte mit der Sprache zu vermeiden, benennt React das Attribut in "className" um, das beim Rendern intern wieder auf das echte "class"-Attribut im DOM abgebildet wird. Dieselbe Logik gilt für "for" bei Label-Elementen, das zu "htmlFor" wird. Fügt man HTML ohne diese Umbenennung direkt in eine Komponente ein, warnt React in der Konsole oder wendet das Styling gar nicht erst an, da es das unbekannte "class"-Prop ignoriert. Jede Instanz manuell über eine lange Vorlage hinweg zu korrigieren, ist mühsam und fehleranfällig. Dieser Konverter benennt "class" automatisch in "className" und "for" in "htmlFor" um — fügen Sie Ihr Markup oben ein, und die Warnungen verschwinden.
Wie wandle ich ein Inline-HTML-Style-Attribut in ein JSX-Style-Objekt um?
In HTML sind Inline-Styles ein einzelner String wie style="margin-top: 10px; font-size: 14px". JSX erwartet stattdessen ein JavaScript-Objekt, dessen Schlüssel camelCase-CSS-Eigenschaften sind und dessen Werte Strings sind, eingeschlossen in doppelte geschweifte Klammern: style={{ marginTop: '10px', fontSize: '14px' }}. Die äußeren Klammern signalisieren JSX, dass ein JavaScript-Ausdruck folgt, die inneren Klammern bilden das eigentliche Objekt. Bindestrich-Namen werden zu camelCase, sodass aus "margin-top" "marginTop" und aus "background-color" "backgroundColor" wird. Diese Umwandlung von Hand ist fehleranfällig, besonders bei vielen Deklarationen oder Vendor-Prefixes. Dieses Tool analysiert jedes Inline-Style und schreibt es automatisch in ein korrektes JSX-Objekt um, camelCased die Eigenschaften und setzt die passenden Anführungszeichen bei den Werten. Fügen Sie Markup mit Style-Attributen oben ein und prüfen Sie die konvertierten Objekte im Ausgabe-Panel.
Warum kompiliert ein aus einem Design-Tool eingefügtes SVG nicht in React?
SVG-Markup, das aus Design-Tools oder Icon-Sets kopiert wird, verwendet Bindestrich-Attributnamen wie fill-rule, stroke-width und clip-path, die in HTML gültig, als JSX-Props aber ungültig sind. Da JSX JavaScript ist, liest sich ein Bindestrich als Minuszeichen, weshalb React diese Attribute erst akzeptiert, wenn sie in camelCase zu fillRule, strokeWidth und clipPath umgewandelt wurden. Dasselbe gilt für viele Filter- und Gradient-Attribute in komplexen SVGs. Fehlt auch nur eines, bricht meist der Build oder das Icon wird leer gerendert, und große Icons können Dutzende solcher Attribute enthalten. Dieser Konverter erkennt SVG-Attribute und camelCased sie automatisch, während Struktur und viewBox erhalten bleiben, sodass das Icon korrekt gerendert wird, sobald Sie es in eine Komponente einfügen. Fügen Sie Ihr SVG oben in das Eingabefeld ein und kopieren Sie das React-taugliche Markup aus der Ausgabe.
Kann ich das konvertierte Markup automatisch in eine React-Komponente einbetten?
Ja. Über die reine Übersetzung von Attributen hinaus kann der Konverter die Ausgabe in eine einsatzbereite Komponente formen, statt nur nacktes Markup zu liefern. Sie können eine reine .jsx-Datei oder eine TypeScript-.tsx-Version ausgeben und das Ergebnis als benannte Funktionskomponente oder Arrow-Function verpacken, inklusive der passenden generierten React-Import-Anweisung. Enthält Ihr Schnipsel mehrere Top-Level-Elemente, gibt die Fragment-Umschließung sie als einen einzigen Knoten zurück, sodass die Komponente ohne zusätzliches div gültig ist. Zusätzlich lassen sich Einrückungsgröße festlegen, einfache oder doppelte Anführungszeichen wählen und wiederkehrende Werte als Props auslagern. Das Ergebnis-Panel bietet außerdem einen zeilenweisen Diff und eine Nebeneinander-Ansicht, um jede Änderung zu überprüfen, sowie einen Bulk-Tab, der mehrere Snippets in einem Durchgang konvertiert. Legen Sie Ihre Ausgabeoptionen oben fest und kopieren oder laden Sie die fertige Komponente herunter.
Embed This Tool
Add a free, live version of this widget to your own website or blog post — it runs entirely in your visitors' browsers, with a credit link back to The Toolbox.
<iframe src="https://getthetoolbox.com/embed/html-to-jsx" title="Free HTML to JSX Converter — The Toolbox" width="100%" height="380" style="max-width:480px;border:1px solid #e2e8f0;border-radius:12px" loading="lazy"></iframe>
<p style="font-size:12px;margin:4px 0 0"><a href="https://getthetoolbox.com/code-tools/html-to-jsx?utm_source=embed&utm_medium=widget" target="_blank" rel="noopener">Free HTML to JSX Converter</a> by The Toolbox</p>Verwandte Tools
Kostenloser CSS-Minifier online
Minifizieren Sie CSS-Code, um die Dateigröße zu verringern und die Ladegeschwindigkeit zu verbessern. Kostenlos, schnell und vollständig im Browser, ohne Anmeldung.
Kostenloser JavaScript-Minifier
Minifizieren Sie JavaScript-Code, um die Dateigröße zu verringern und die Leistung zu verbessern. Kostenlos, schnell und vollständig im Browser, ohne Anmeldung.
Kostenloser HTML-Minifier online
Minimiere HTML-Code, um Seitengröße und Ladezeit zu reduzieren. Kostenlos, schnell und vollständig im Browser, ohne Anmeldung.
Kostenloser SQL-Formatierer & Verschönerer
Formatiere und verschönere SQL-Abfragen für bessere Lesbarkeit. Kostenlos, schnell und vollständig im Browser, ohne Anmeldung.
Über den HTML-zu-JSX-Konverter
Der HTML-zu-JSX-Konverter verwandelt einfaches HTML-Markup in gültiges JSX, das sich direkt in eine React-Komponente einfügen lässt. Fügen Sie einen Codeschnipsel, einen kompletten Seitenabschnitt oder ein SVG-Icon ein, und das Tool schreibt genau die Stellen um, die React ablehnt — es benennt class in className um, schließt Void-Tags wie <img> und <br> korrekt, und wandelt Inline-style-Strings in die Style-Objekte um, die React erwartet. Es wurde für Frontend-Entwickler entwickelt, die eine statische Vorlage portieren, für Designer, die Markup an ein React-Team übergeben, sowie für alle, die eine alte Seite in eine moderne, komponentenbasierte UI überführen, ohne jedes Attribut von Hand korrigieren zu müssen.
Der Konverter läuft vollständig in Ihrem Browser. Nichts, was Sie einfügen, wird auf einen Server hochgeladen oder dort gespeichert — proprietäres Markup und unveröffentlichte Seiten bleiben auf Ihrem Rechner. Es gibt keine Registrierung, kein Nutzungslimit und keine Installation — Ihr Konvertierungsverlauf wird ausschließlich im lokalen Speicher Ihres eigenen Browsers abgelegt (bis zu den letzten 30 Einträgen) und verlässt niemals das Gerät.
Was der Konverter umschreibt
JSX sieht aus wie HTML, folgt aber den Regeln von JavaScript — und genau in den kleinen Unterschieden bricht handkopiertes Markup. Dieses Tool übernimmt die gängigsten davon automatisch:
- Attribute mit reservierten Wörtern —
classwird zuclassNameundforwird zuhtmlFor, daclassundforin JavaScript reservierte Begriffe sind. - camelCase-Attributnamen — mehrteilige Attribute wie
tabindex,maxlength,colspanundcellpaddingwerden zutabIndex,maxLength,colSpanundcellPaddingumbenannt. - Inline-Styles — ein String wie
style="margin-top: 10px; font-size: 14px"wird in ein JSX-Objekt wie{{ marginTop: '10px', fontSize: '14px' }}umgewandelt. - Selbstschließende Tags — Void-Elemente (
img,br,hr,input,meta) werden mit einem abschließenden Schrägstrich geschlossen, damit JSX sie korrekt parst. - SVG-Attribute — Bindestrich-Eigenschaften bei SVG wie
fill-ruleundstroke-widthwerden in camelCase zufillRuleundstrokeWidth. - Event-Handler — inline
onclickwird zuonClickumgeschrieben, optional mit Handler-Stub-Vorlagen, damit das Markup kompiliert. - Boolesche Attribute, Kommentare sowie data/aria — Booleans werden normalisiert, HTML-Kommentare können entfernt oder beibehalten werden, und
data-*- sowiearia-*-Attribute bleiben unverändert erhalten.
Ausgabeoptionen und Bedienung
Fügen Sie Ihr HTML links ein, und das JSX erscheint sofort rechts; alternativ aktivieren Sie die automatische Konvertierung oder drücken Strg+Enter. Über die reine Konvertierung hinaus lässt sich die Form der Ausgabe steuern:
- JSX oder TSX — Ausgabe als reine
.jsx-Datei oder als TypeScript-.tsx-Version. - Komponenten-Wrapper — das Markup unverändert lassen oder es als benannte Funktionskomponente oder Arrow-Function verpacken, inklusive optional generierter
React-Import-Anweisungen. - Fragment-Umschließung — mehrere Top-Level-Elemente in ein Fragment packen, sodass sie als ein einzelner Knoten zurückgegeben werden.
- Prop-Extraktion und Formatierung — wiederkehrende Werte als Props auslagern sowie Einrückungsgröße und einfache oder doppelte Anführungszeichen festlegen.
Das Ergebnis-Panel bietet eine Ausgabeansicht, einen zeilenweisen Diff gegenüber Ihrer Eingabe sowie eine Nebeneinander-Ansicht, dazu eine kleine Statistikübersicht, die geänderte Attribute, Styles, Events, SVG-Attribute, selbstgeschlossene Tags und Kommentare zählt. Kopieren Sie das JSX in die Zwischenablage oder laden Sie es als Datei herunter. Ein Bulk-Tab konvertiert mehrere Snippets in einem Durchgang.
Warum HTML in JSX konvertieren
JSX muss gültiges JavaScript sein, weshalb das Einfügen von rohem HTML in eine React-Datei schon vor dem Rendern Fehler wirft — ein nicht erkanntes class-Attribut oder ein nicht geschlossenes <img>-Tag lässt den Build scheitern. Eine vorherige Konvertierung nimmt diese Reibung, sei es beim Übernehmen einer Marketing-Seite aus einem CMS in eine React-App, bei der Wiederverwendung einer HTML-E-Mail oder eines Widgets von Drittanbietern, oder beim Einfügen eines SVG-Icons, das React erst akzeptiert, wenn dessen Attribute in camelCase vorliegen.
Der Konverter ist ein originalgetreuer Syntax-Übersetzer, kein Codegenerator — er erfindet weder State noch Props oder Geschäftslogik, und komplexes Markup verdient weiterhin eine kurze Durchsicht. Aber er nimmt fast die gesamte mechanische, fehleranfällige Arbeit ab, HTML React-tauglich zu machen. Fügen Sie Ihr Markup oben ein, um zu sehen, wie sich das JSX in Echtzeit aktualisiert.