React Js Webseite

React js 17 neue Features

Dan Abramov hat die neue Version von Facebooks React js 17 vorgestellt. Es gibt einige interessante Änderungen und neue Features zu entdecken.

React js 17 mit Fokus auf async rendering

Mit einem starken Fokus auf asynchrones Rendering versucht React 17 eine Umgebung zu schaffen, die es Entwicklern ermöglicht auf einfache Weise effiziente Anwendungen zu erstellen, indem es die Auswirkungen von Rechen- und Netzwerkgeschwindigkeiten auf das Benutzererlebnis minimiert.

Um dies zu erreichen, wird es unweigerlich eine Verschiebung in der Art und Weise der Schreibweise der React-Anwendungen geben. Die Einführung einiger neuer Funktionen und die Entfernung (deprecation) einiger früherer machen diesen Umstand unumgänglich.

code mit brille

Neue Lifecycle-Methoden in React js 17

Es gibt zwei neue Lifecycle-Methoden:

getDerivedStateFromProps und getSnapShotBeforeUpdate

Diese solltet ihr beachten, wenn ihr euch darauf vorbereitet eure Anwendung auf React 17 umzustellen. Unsichere Methoden solltet ihr durch diese neuen Lifecycle-Methode ersetzen.

Beispielsweise kann componentWillUpdate durch die Verwendung von getDerivedStateFromProps in Verbindung mit shouldComponentUpdate ersetzt werden. Auf componentWillMount sollte für das asynchrone Rendern ganz verzichtet werden.

Die getDerivedStateFromProps Methode

Diese Lifecycle-Methode ersetzt componentWillReceiveProps und componentWillUpdate und wird aufgerufen, nachdem eine Komponente erstellt wurde und wenn sie neue Properties erhalten hat. Sie gibt ein Objekt zurück, dessen Zustand aktualisiert werden soll. Wenn die Komponente nicht neu gerendert werden soll kann diese auch NULL zurück geben.

state = { myProps: null };

static getDerivedStateFromProps(nextProps, prevState) {
  return {
    myProps: nextProps.myNewProps,
    ..
  };
}

Diese Methode sollte jedoch nur dazu verwendet werden, wenn der Innere Zustand sich ändert. Ansonsten kann es zu Fehlfunktionen (bugs) führen.

Die getSnapshotBeforeUpdate Methode

Diese Methode behandelt Komponentenaktualisierungen und wird componentWillUpdate effektiv ersetzen und arbeitet mit componentDidUpdate. Sie wird vor jeder DOM-Aktualisierung aufgerufen und gibt einen Wert zurück, der an componentDidUpdateDidUpdate übergeben wird, sodass dann die Änderungen gehandhabt werden:

getSnapshotBeforeUpdate (prevProps, prevState) {
  if (this.state.liste > prevState.liste) {
    const listenRef = this.listenRef.current
    return listenRef.scrollHeight - listenRef.scrollTop
  }
  return null
}

Die Präsentation der Neuen Features auf Youtube

Sobald die neue Version von React js veröffentlicht wird, werden wir die neuen Funktionen auch in unsere Übungsunterlagen aufnehmen. Diese Funktionen werden dann Teil der Schulungen, um euch ebenso auf dem neusten Stand zu halten.

Kommentar verfassen