Zum Inhalt springen

JSX (JavaScript)

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 10. Juni 2022 um 08:35 Uhr durch Sky-Dean Dawid (Diskussion | Beiträge) (Sky-Dean Dawid verschob die Seite Benutzer:Sky-Dean Dawid/JSX (JavaScript) nach JSX (JavaScript): Artikel vollständig). Sie kann sich erheblich von der aktuellen Version unterscheiden.

JSX steht für Javascript Syntax Extension oder Javascript XML und ist eine Erweiterung der gängigen Javascript-Syntax von React.[1]

Syntax

In JSX ist jedes Tag ein „Funktionsaufruf“, der ein Element erzeugt. Wenn JSX in React "übersetzt" wird, sieht das Ergebnis so aus:

function createElement(elementType, props, ...children) {}

Dies liegt daran, dass jedes Tag mit der Funktion createElement() ein Element erstellt. Der folgende Beispielcode zeigt, wie man JSX in React einbetten kann:

const name = 'Max Mustermann';
const element = <h1>Hallo, {name}</h1>;

ReactDOM.render(
  element,
  document.getElementById('root')
);

In diesem Code werden 2 Konstanten erstellt und den Zeichenfolgenwert an den HTML-Code übergeben.

Danach wird ReactDOM.render() aufgerufen und den HTML-Code zusammen mit dem „root“-Element übergeben.[2][3][4]

Attribute

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>;

Sicherheit (XSS)

JSX verhindert Injection-Attacken wie 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 einen String konvertiert, bevor es gerendert wird. Dies hilft, XSS-Angriffe (Cross-Site-Scripting) zu verhindern.[5]

Props in JSX

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, daher können sie in JSX nicht direkt verwendet werden.[6][7]

Siehe auch

Einzelnachweise

  1. Einführung in JSX – React. Abgerufen am 10. Juni 2022 (englisch).
  2. t3n – digital pioneers | Was ist JSX und wofür braucht man das? Abgerufen am 10. Juni 2022.
  3. What is JSX? How to use JavaScript with React? – Let's React. Abgerufen am 10. Juni 2022 (amerikanisches Englisch).
  4. Einführung in JSX – React. Abgerufen am 10. Juni 2022 (englisch).
  5. What is JSX and why to use it? Abgerufen am 10. Juni 2022 (englisch).
  6. Components and Props – React. Abgerufen am 10. Juni 2022 (englisch).
  7. JSX In Depth – React. Abgerufen am 10. Juni 2022 (englisch).