DokumenteBilderMedienPDF-Werkzeuge

HTML in JSX React Online konvertieren

Transformiere HTML in gültiges JSX für React und Next.js. Kostenlos, in deinem Browser, ohne Datei-Upload.

Processed in your browser

HTML in JSX ohne Syntaxfehler

Vollständige Privatsphäre

Die Konvertierung findet vollständig in deinem Browser mit reinem JavaScript statt. Dein Code verlässt niemals dein Gerät.

Vollständige Transformationen

Wir wenden alle notwendigen Konvertierungen an: Attribute, Styles, Events, Void-Tags und Kommentare. Keine manuellen Schritte.

Kompatibel mit React und Next.js

Das resultierende JSX ist für React 16+, Next.js 12+ und jedes React-basierte Framework wie Gatsby oder Remix gültig.

Sofort

Die Konvertierung erfolgt in Millisekunden ohne Server-Aufrufe. Einfügen und kopieren, ohne Warten.

Drei Schritte, kein Aufwand

1

Füge dein HTML ein

Füge den HTML-Code, den du konvertieren möchtest, in das Eingabefeld ein. Es können vollständige HTML-Dokumente oder Fragmente sein.

2

Automatische Konvertierung

Der Konverter wendet alle notwendigen Transformationen an: class in className, for in htmlFor, Inline-Styles als JS-Objekt und selbstschließende Void-Tags.

3

Resultierendes JSX kopieren

Kopiere das einsatzbereite JSX direkt in deine React- oder Next.js-Komponenten.

Noch Fragen?

Die wichtigsten Transformationen sind: class wird zu className (class ist ein reserviertes Wort in JS), for wird zu htmlFor (for ist ebenfalls reserviert), Inline-Styles werden vom CSS-String in ein JavaScript-Objekt mit camelCase-Eigenschaften konvertiert, Void-Tags werden selbstgeschlossen (br wird zu br /, img wird zu img /, input wird zu input /), und HTML-Kommentare werden in JSX-Kommentare umgewandelt.

React/Next.js erfordert JSX, weil Komponenten in JavaScript geschrieben werden. JSX ist syntaktischer Zucker über React.createElement(). Wenn es von Babel oder dem Next.js-Compiler kompiliert wird, wird jedes JSX-Tag in JavaScript-Funktionsaufrufe umgewandelt, was es unmöglich macht, reservierte JS-Wörter wie class oder for als Attribute zu verwenden.

In HTML lautet die Syntax: style mit color und font-size als String. In JSX wird daraus ein JavaScript-Objekt: style mit color als String und fontSize als camelCase-Property. CSS-Eigenschaften in Kebab-Case werden in camelCase konvertiert (font-size wird zu fontSize, background-color zu backgroundColor), und Werte werden zu JavaScript-Strings oder Zahlen konvertiert.

Event-Handler in HTML verwenden Kleinbuchstaben (onclick, onchange, onsubmit). In JSX werden sie zu camelCase konvertiert: onclick wird zu onClick, onchange zu onChange, onsubmit zu onSubmit, onmouseover zu onMouseOver. Der Wert wechselt von einem JS-Code-String zu einer Funktionsreferenz.

Void-Elemente in HTML sind Tags ohne Inhalt oder schließendes Tag: br, img, input, hr, meta, link. In JSX verlangt XML, dass alle Elemente explizit geschlossen werden, daher müssen sie als br /, img / usw. geschrieben werden. Ohne Selbstschließung wirft der JSX-Compiler einen Syntaxfehler.

Geschichte von React JSX (Facebook 2013), Unterschiede zwischen HTML und JSX, Migration von HTML-Templates zu React-Komponenten, Next.js-Entwicklungs-Workflow

JSX (JavaScript XML) wurde 2013 von Facebook zusammen mit React als JavaScript-Syntaxerweiterung eingeführt, die das Schreiben HTML-ähnlicher Strukturen direkt in JS-Code ermöglicht. Obwohl React optional ohne JSX durch direkte Aufrufe von React.createElement() verwendet werden kann, wurde JSX schnell zum De-facto-Standard, weil es die Lesbarkeit von Komponentencode dramatisch verbessert. Babel und später der SWC-Compiler von Next.js transformieren JSX während des Build-Prozesses in reines JavaScript.

Die Unterschiede zwischen HTML und JSX entstehen dadurch, dass JSX im JavaScript-Kontext operiert. Am wichtigsten: class ist ein reserviertes Wort in JavaScript (für die Definition von ES6-Klassen), daher wählte React className als äquivalentes Attribut. Ähnlich ist for ein reserviertes Wort (für Schleifen), daher wird das label-Attribut als htmlFor geschrieben. Inline-Styles erfordern ein JavaScript-Objekt anstatt eines CSS-Strings, weil es in einem JS-Kontext sicherer ist und Variableninterpolation ermöglicht. CSS-Eigenschaften werden in camelCase geschrieben, weil der Bindestrich der Subtraktionsoperator in JavaScript ist.

Die Migration statischer HTML-Templates zu React-Komponenten ist ein häufiger Anwendungsfall: Designer oder Entwickler, die mit reinem HTML arbeiten, müssen ihre Designs in Next.js- oder Create-React-App-Projekte integrieren. Der manuelle Prozess ist mühsam und fehleranfällig, besonders bei komplexem HTML mit vielen Style-Attributen, Event-Handlern und Void-Elementen. Automatisierte HTML-zu-JSX-Konvertierungstools beschleunigen diesen Migrationsprozess in Projekten jeder Größenordnung erheblich.