JSX (JavaScript)
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. SyntaxJSX 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" }, ["Hallo, ", user]),
React.createElement("a", { href: "https://www.reactjs.org" }, ["link"])
]);
Der folgende Beispielcode zeigt, wie man JSX in React mittels const name = 'Max Mustermann';
const element = <h1>Hallo, {name}</h1>;
ReactDOM.render(
element,
document.getElementById('root')
);
AttributeMan 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>;
Sicherheit (XSS)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] Props in JSX
Man kann einen beliebigen JavaScript-Ausdruck als Prop übergeben, indem man ihn mit <MyComponent foo={1 + 2 + 3 + 4} />
Für 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] VueDas Framework Vue.js verwendet eine eigene Auszeichnungssprache, kann aber auf Wunsch mit JSX verwendet werden.[11] TSXZur Verwendung von JSX mit TypeScript wird die Dateierweiterung Siehe auchEinzelnachweise
|
Portal di Ensiklopedia Dunia