JSX

JSX ist eine Syntaxerweiterung für JavaScript, die eine deklarative Erstellung von UI-Komponenten ermöglicht. Es wird durch einen weiteren Kompilierungsschrit in gültiges JavaScript umgewandelt.

Damit ist es möglich, Markup in JavaScript schreiben:

const element = <h1>Hello, world!</h1>;

Ein JSX-Element stellt ein Objekt in JavaScript dar (vom Typ "ReactElement" oder "ReactNode").

JavaScript-Ausdrücke können mit geschweiften Klammern in JSX eingebettet werden.

const name = 'Josh Perez';
const element = <h1>Hello, {name}</h1>;

Das sieht aus wie eine Template-Sprache, aber hier können alle JavaScript-Sprachfeatures verwendet werden.

JSX ist wiederum auch ein Ausdruck, man kann ihn Variablen zuweisen oder von einer Funktion zurückgeben, um neue JSX-Elemente zu erstellen.

JSX Attribute

Sie können Attribute wie in HTML verwenden oder JavaScript-Ausdrücke über geschweifte Klammern zuweisen.

Ein häufiger Fallstrick ist jedoch die Tatsache, dass einige Attribute anders benannt sind, z. B. className statt class, da class ein reserviertes Schlüsselwort in JavaScript ist. Außerdem folgen die Attribute der camelCase-Schreibweise (z. B. tabIndex). camelCase ist eine gängige Namenskonvention für Variablen in JavaScript.

JSX-Fragmente

Du kannst leere Tags <> und </> verwenden, um mehrere Elemente in einem Fragment zu gruppieren, ohne ein weiteres DOM-Element zu verwenden.

Rendern von JSX

Um JSX-Elemente zu rendern, wird ein Root-Element benötigt, in das die JSX-Elemente eingefügt werden:

<div id="root"></div>
const root = ReactDOM.createRoot(
document.getElementById('root')
);

const element = <h1>Hello, world</h1>;
root.render(element);

root.render(element) ist damit auch der Einstiegspunkt einer React-Anwendung.