Livrée fin mars, la version 16.3 de la bibliothèque JavaScript React de Facebook qui permet de créer des interfaces utilisateurs comporte plusieurs changements notables. Concernant le cycle de vie des composants, le futur mode de rendu asynchrone étend le composant de classe du modèle d'API, qui était utilisé d'une manière qui n'était pas prévue au départ. De nouveaux cycles de vie ont été ajoutés, y compris getDerivedStateFromProps, comme alternative plus sûre à l'ancien cycle de vie componentWillReceiveProps. Également ajouté, getSnapshotBeforeUpdate, qui assure une lecture correcte des propriétés, notamment du DOM avant application des mises à jour. Certains cycles de vie comme componentWillMount et componentWillReceiveUpdate seront également précédés du préfixe « unsafe ». Dans ce contexte, « unsafe » ne se réfère pas à la sécurité, mais il indique que le code utilisant ces cycles de vie est potentiellement plus sujet aux bogues dans les futures versions de React.

La version 16.3 de React ne demande aucune action des développeurs pour ce qui est des méthodes héritées. Cette mouture doit inciter les responsables de projets open source à mettre à jour leurs bibliothèques avant les avertissements d'obsolescence qui ne seront activés qu'à partir d'une prochaine version de la série 16.x. Cette version comporte par ailleurs un nouveau composant, StrictMode, servant à identifier les composants dont le cycle de vie n'est pas sûr. StrictMode ne fonctionne qu'en mode développement. Il prévient de l’utilisation par l’API d’une ancienne chaîne de référence et détecte les effets secondaires inattendus. StrictMode active des contrôles supplémentaires pour les descendants. D'autres fonctionnalités lui seront ajoutées ultérieurement.

Une API de contexte qui assure le contrôle statique

La nouvelle API de contexte prend en charge le contrôle du type statique et les mises à jour approfondies. « Cette API est également plus efficace que la version expérimentale précédente », a déclaré Brian Vaughn, membre de l'équipe React JS de Facebook. L’API de contexte permet de faire transiter les données par une arborescence de composants sans avoir à passer manuellement les props, les objets représentant les propriétés, dont certains incluent des préférences locales et le thème de l'interface utilisateur. L'ancienne API continuera de fonctionner avec les versions 16.x de React, afin de donner aux utilisateurs le temps d’effectuer leur migration.

React 16.3 comporte aussi une API createrefAPI améliorée. Utilisée pour la gestion des références, elle permet d'accéder aux nœuds DOM ou aux éléments React développés par la méthode render. Également présente dans la nouvelle mouture.

Source : https://www.lemondeinformatique.fr/actualites/lire-react-s-arme-du-composant-strictmod-71372.html