In der heutigen Welt ist JSX (JavaScript) ein Thema, das die Aufmerksamkeit von Menschen jeden Alters und aller Interessen auf sich gezogen hat. Angesichts des wachsenden Interesses an diesem Thema ist es wichtig, seine Auswirkungen zu verstehen und seine Auswirkungen auf verschiedene Bereiche der Gesellschaft zu berücksichtigen. Ob aus historischer, wissenschaftlicher, kultureller oder sozialer Perspektive: JSX (JavaScript) war Gegenstand zahlreicher Debatten und Diskussionen und hat ein wachsendes Interesse daran geweckt, mehr über seine Ursprünge, seine Entwicklung und seine heutige Relevanz zu erfahren. In diesem Artikel werden wir verschiedene Aspekte im Zusammenhang mit JSX (JavaScript) untersuchen, seine Bedeutung analysieren und verschiedene Standpunkte ansprechen, um einen vollständigen Überblick über dieses faszinierende Thema zu bieten.
| JSX | |
|---|---|
const element = <h1>Hallo Welt!</h1>;
| |
| Basisdaten | |
| Erscheinungsjahr: | 2013[1] |
| Beeinflusst von: | JavaScript, Hypertext Markup Language |
| facebook.github.io/jsx/ | |
JSX (JavaScript Syntax Extension oder gelegentlich JavaScript XML) ist eine Syntax-Erweiterung für JavaScript (Syntaktischer Zucker).[2] JSX wurde für das Framework React entwickelt und wird als Auszeichnungssprache für Komponenten verwendet.
JSX ist in seiner Syntax ähnlich zu Hypertext Markup Language, wie das folgende Beispiel zeigt:[3]
const user = "Max Mustermann";
const element = (
<div>
<h1 className="greeting">Hallo, {user}</h1>
<a href="https://www.reactjs.org">link</a>
</div>
);
Beim Übersetzen von JSX wird daraus der folgende React-JavaScript-Code mit erzeugt:[4]
const user = "Max Mustermann";
const element = React.createElement("div", {}, [
React.createElement("h1", { className: "greeting" }, ),
React.createElement("a", { href: "https://www.reactjs.org" }, )
]);
Der folgende Beispielcode zeigt, wie man JSX in React mittels ReactDOM.render() einbetten kann.[5][6][7]
const name = 'Max Mustermann';
const element = <h1>Hallo, {name}</h1>;
ReactDOM.render(
element,
document.getElementById('root')
);
Man benutzt meistens Anführungszeichen um string-Literale als Attribute zu verwenden:
const element = <a href="https://www.wikipedia.org"> link </a>;
Ebenfalls kann man geschweifte Klammern verwenden, um JavaScript-Ausdrücke in ein Attribut einzubinden:
const element = <img src={user.avatarUrl}></img>;
JSX verhindert Injection-Attacken wie Cross-Site-Scripting (XSS). Es ist sicher, Benutzereingaben wie diese einzubetten:
const title = response.potentiallyMaliciousInput;
// Dies ist sicher:
const element = <h1>{title}</h1>;
Standardmäßig entschlüsselt React DOM alle in JSX eingebetteten Werte, bevor sie gerendert werden. Alles wird in eine Zeichenkette konvertiert, bevor es gerendert wird.[8]
Man kann einen beliebigen JavaScript-Ausdruck als Prop übergeben, indem man ihn mit {} umgibt. Zum Beispiel in diesem Code:
<MyComponent foo={1 + 2 + 3 + 4} />
Für MyComponent wird der Wert von props.foo 10 sein, weil der Ausdruck 1 + 2 + 3 + 4 ausgewertet wird.
if-Anweisungen und for-Schleifen sind in JavaScript keine Ausdrücke (sondern Anweisungen), daher können sie in JSX nicht direkt verwendet werden.[9][10]
Das Framework Vue.js verwendet eine eigene Auszeichnungssprache, kann aber auf Wunsch mit JSX verwendet werden.[11]
Zur Verwendung von JSX mit TypeScript wird die Dateierweiterung .tsx verwendet.[12]
React.createElement