zurück zum Artikel

JavaScript: React 16.9 liefert zahlreiche Warnungen für künftige Deprecations

JavaScript: React 16.9 liefert zahlreiche Warnungen für künftige Deprecations

Das React-Logo

(Bild: Facebook, via Wikimedia Commons))

Neben neuen Hinweisen für kommende Deprecations hat die neue Version der JavaScript-Bibliothek React zwei neue Features im Gepäck.

Facebooks quelloffene JavaScript-Bibliothek React ist in Version 16.9.0 erschienen. Das neue Release enthält eine Reihe an Warnungen, die auf künftige Deprecations in React hinweisen. Sie sollen Entwickler damit auf kommende Änderungen in künftigen Major Releases hinweisen und auffordern, die betroffenen Codezeilen entsprechend anzupassen.

Darüber hinaus haben die Macher der Library die in der vorherigen Version eingeführte Testing-Funktion act() auf asynchrone Funktionen ausgeweitet.
Außerdem bietet React mit dem React.Profiler eine neue Möglichkeit, um die Performance in Teilen der Applikation zu messen.

Bereits im März 2018 hatte das React-Team angekündigt [1], die unsicheren Lifecycle-Methoden componentWillMount, componentWillReceiveProps und componentWillUpdate umzubenennen, um mögliche Probleme durch einen UNSAFE_-Präfix zu verdeutlichen. Die alten Namen funktionieren zwar nach wie vor, React 16.9 gibt aber nun eine Warnung mit Vorschlägen für bessere Alternativen aus. Wer die Methoden allerdings beibehalten möchte, kann sie mit einem Codemod-Skript automatisch in die neuen Varianten umwandeln:

cd your_project
npx react-codemod rename-unsafe-lifecycles

Die neue React-Version warnt Entwickler ebenfalls beim Einsatz von URLs, die mit javascript: beginnen, da diese wohl ein größeres Sicherheitsrisiko darstellen. Die Verwendung funktioniert zwar immer noch, sie soll aber in künftigen Versionen endgültig abgeschafft werden. Das Team der JavaScript-Bibliothek schlägt Event Handler als Alternative vor, um die Logik sicherer umzusetzen.

Verabschieden müssen sich React-Anwender außerdem von der FactoryComponent, die React vor, die ein Objekt mit einer render-Methode zurückgibt. Sie war wohl einer Zeit geschuldet, als es noch nicht üblich war, JavaScript-Klassen mit Babel zu kompilieren. Allerdings sei die Komponente äußerst verwirrend und würde sowieso kaum eingesetzt, weshalb sie nun aus React verschwindet.

In der vorherigen Minor-Version [2] von React hat die Methode act() Einzug in die JavaScript-Bibliothek gehalten. Sie soll beim Schreiben von Tests und der Zuordnung von Browser-Verhaltensweisen helfen. Bislang funktionierte sie nur mit synchronen Funktionen, nun sollen auch asynchrone kein Problem mehr darstellen.

Der neue React.Profiler soll hingegen berechnen, wie oft eine Applikation rendert und wie hoch die damit verbundenen Performancekosten sind. Entwickler können ihn an den Teilen der Applikation verwenden, die vergleichsweise langsam sind und damit versuchen, mögliche Änderungen abzuleiten.

Einen vollständigen Überblick über die Neuerungen inklusive einiger Bugfixes bietet der Blogbeitrag zum Release [3]. Das React-Team hat außerdem an der Roadmap des Projekts gefeilt, sodass die Features Concurrent Mode und Suspense für Data Fetching in einem gemeinsamen Release im laufenden Jahr folgen sollen. Ursprünglich sollten sie in zwei getrennten Versionen bereits im zweiten Quartal des Jahres erscheinen. (bbo [4])


URL dieses Artikels:
http://www.heise.de/-4492082

Links in diesem Artikel:
[1] https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html
[2] https://www.heise.de/meldung/React-16-8-Das-erste-Stable-Release-mit-Hooks-4299260.html
[3] https://reactjs.org/blog/2019/08/08/react-v16.9.0.html
[4] mailto:bbo@ix.de