Disponible depuis aujourd’hui, React 16, la dernière version de la bibliothèque JavaScript qui sert à créer des interfaces utilisateurs, revient avec un noyau réécrit et la promesse de meilleures performances. Basé sur un noyau React Fiber modifié, nom adopté pour la phase de développement du framework Javascript, React 16 améliore la réactivité des applications complexes grâce à l’ajout d’un nouvel algorithme de réconciliation.
Voici les principales caractéristiques de React 16 :
- Des erreurs plus faciles à déboguer grâce à un composant de suivi de pile
- Un renvoi des chaînes/tableaux directement à partir des méthodes de rendu de composant.
- Un système de rendu en streaming plus rapide côté serveur.
- Des performances encore plus proches de celles d’applications natives.
- Le remplacement de la licence BSD (Berkeley Software Distribution License) + Brevets contestée par une licence MIT plus acceptable.
Rendu asynchrone à venir
Les développeurs promettent que la prochaine version de React 16 offrira le rendu asynchrone qui permet le traitement de gros composants sans bloquer le thread d'exécution principal. Cette première version de React 16, livrée aujourd'hui, se concentre sur la compatibilité avec les applications existantes et ne comprend pas de fonctions asynchrones. Même si les composants internes de React ont été complètement réécrits, l'API publique reste « globalement identique », a déclaré Sophie Alpert, responsable ingénierie de React chez Facebook. L’objectif était d’éviter aux développeurs de réécrire les composants existants développés avec React.
Comme le fait généralement Facebook, le nouveau code de React 16 a été ajouté à l’ancien dans le référentiel GitHub. Le passage de l’un à l’autre a été réalisé avec le marqueur booléen « useFiber ». La modalité permet à Facebook de créer sa nouvelle implémentation sans gêner les utilisateurs actuels et de continuer à corriger les bugs de l'ancienne base de code. Après quelques mois passés à éliminer les bugs, Facebook a décidé de livrer un seul produit afin de limiter le nombre global de bugs potentiels, plutôt que de conserver deux versions de React.