JSX (JavaScript XML) ist eine Syntaxerweiterung für JavaScript, die es Entwicklern ermöglicht, HTML-ähnlichen Code direkt in JavaScript-Dateien zu schreiben. Es ist eine der Kernfunktionen von React und verbessert das Entwicklungserlebnis, indem es eine klare und präzise Beschreibung der Struktur von Benutzeroberflächen (UI) ermöglicht.
Hier finden Sie alles, was Sie über JSX wissen müssen:
Mit JSX können Sie XML-ähnliche Tags schreiben, die HTML-Elemente oder React-Komponenten in JavaScript darstellen. Während JSX wie HTML aussieht, ist es das nicht – unter der Haube wird JSX mit Tools wie Babel in Standard-JavaScript kompiliert.
const Greeting = () => { return <h1>Hello, World!</h1>; };
const Greeting = () => { return React.createElement('h1', null, 'Hello, World!'); };
Sie können JavaScript-Ausdrücke in JSX einbetten, indem Sie sie in geschweifte Klammern {} einschließen.
const name = "Alice"; const Greeting = () => <h1>Hello, {name}!</h1>;
JSX unterstützt Attribute ähnlich wie HTML, jedoch mit CamelCase-Benennung für Eigenschaften.
const Button = () => <button className="btn" onClick={() => alert('Clicked!')}>Click Me</button>;
Sie können Elemente ineinander verschachteln, um eine vollständige UI-Struktur zu erstellen.
const App = () => ( <div> <h1>Welcome</h1> <p>This is a nested JSX structure.</p> </div> );
Verwenden Sie JavaScript-Logik, um Elemente bedingt darzustellen.
const isLoggedIn = true; const App = () => ( <div> {isLoggedIn ? <h1>Welcome Back!</h1> : <h1>Please Log In</h1>} </div> );
JSX bietet eine deklarative Möglichkeit, die Benutzeroberfläche zu definieren, wodurch der Code lesbarer wird und dem tatsächlichen UI-Design näher kommt.
Da JSX nur syntaktischer Zucker für JavaScript-Funktionen ist, ermöglicht es die nahtlose Integration von Logik, Status und Requisiten in Ihre UI-Definitionen.
JSX erleichtert das Schreiben, Verstehen und Debuggen des UI-Codes im Vergleich zu herkömmlichen React.createElement()-Aufrufen.
JSX muss ein einzelnes Root-Element zurückgeben. Verwenden Sie ein
const Greeting = () => { return <h1>Hello, World!</h1>; };
Für Elemente ohne untergeordnete Elemente verwenden Sie selbstschließende Tags.
const Greeting = () => { return React.createElement('h1', null, 'Hello, World!'); };
Obwohl JSX Inline-Styling über das Style-Attribut unterstützt, verwenden Sie für eine bessere Wartbarkeit CSS-in-JS-Bibliotheken oder externe Stylesheets.
const name = "Alice"; const Greeting = () => <h1>Hello, {name}!</h1>;
JSX entgeht automatisch gefährlichen Eingaben, um XSS-Angriffe zu verhindern. Zum Beispiel: