Aujourd’hui, nous allons analyser un nouveau programme React : react-freeze. Cette petite bibliothèque utilise le mécanisme React Suspense pour empêcher l’activation de certaines parties de l’arborescence des composants React tout en gardant son état (à la fois l’état de React et de la vue native / de l’élément DOM) intact. De cette façon, il est possible de mettre en pause les mises à jour d’une partie des applications qui ne sont pas visibles pour l’utilisateur à ce moment-là, et donc de gagner du temps.

Le scénario d’utilisation idéale de la bibliothèque react-freeze est la navigation. Lorsque l’on utilise la navigation dans les applications React Native, il y a un certain nombre de composants graphiques qui sont présentes dans l’arborescence react et qui peuvent recevoir des mises à jour d’état, mais qui ne sont pas visibles pour l’utilisateur. Il en va de même pour la navigation par onglets dans les applications web ou natives – nous avons des arborescences de composants potentiellement complexes au niveau de chaque onglet, et comme nous ne voyons qu’un seul onglet à la fois, on passe inutilement beaucoup de temps à mettre à jour les onglets invisibles.

Notez que react-freeze ne supprime pas les composants gelés, mais ils seront temporairement retirés de l’écran et remplacés par un placeholder. Il s’agit d’une limitation de l’approche que nous adoptons avec Suspense. Cependant, cela ne devrait pas être une réduction trop problématique car de toute façon notre objectif est de geler uniquement les parties qui ne sont pas visibles.

Cette bibliothèque est une expérience et même si nous l’avons testée sur un certain nombre d’applications, nous ne sommes pas toujours sûrs que cette approche soit 100% correcte. Si vous êtes prêt à l’essayer et à nous faire part de vos commentaires, il existe plusieurs façons de le faire :

UTILISER LA BIBLIOTHÈQUE FREEZE DIRECTEMENT DANS LES APPLICATIONS REACT OU REACT NATIVE

Pour utiliser Freeze, la seule chose que vous devez faire est d’importer le composant Freeze de la bibliothèque react-freeze que vous pouvez installer à partir de npm. Ensuite, vous enveloppez certains de vos composants avec lui et passez freeze={true} lorsque vous souhaitez que les mises à jours soient stockées provisoirement dans la sous-arborescence enveloppée :

code

COMMENT L’UTILISER AVEC REACT-NAVIGATION V5 OU V6 (REACT NATIVE) :

React-navigation utilise une bibliothèque appelée react-native-screens pour effectuer la récupération des graphiques originaux. Au niveau de la bibliothèque react-native-screens, nous sommes capables de dire quels « graphiques » sont visibles et quels sont ceux cachés. Grâce à cela, nous avons pu modifier les graphiques de la bibliothèque react-native et ajouter un support expérimental pour le freeze. Pour l’utiliser, la seule chose à faire est de mettre à jour react-native-screens avec la version 3.9.0 et d’ajouter le snippet ci-dessous dans le fichier racine de votre application :

code 2

Cette version de react-native-screens est compatible avec react-navigation v5 et v6, cependant, avec react-navigation v5, assurez-vous d’avoir également la bibliothèque screens activée. Ceci peut être fait grâce à une méthode supplémentaire dans le fichier principal de votre application : enableScreens(true) et en passant l’option detachInactiveScreens avec vos navigateurs (onglets, etc).

Le mot de la fin

L’utilisation de React Freeze avec React Suspense est un procédé qui peut paraître complexe mais ils possèdent de nombreux avantages comme celui de faire gagner du temps à l’utilisateur.

Le principe est d’empêcher l’activation de certaines parties de l’arborescence des composants React pour permettre la mise en pause des mises à jour d’une partie des applications qui ne sont pas visibles pour l’utilisateur.

Articles de la même catégorie

default alt text

Comment Jamstack peut-il vous aider à augmenter le taux de conversion de votre site ?

Découvrez comment Jamstack peut permettre à un site web ou e-commerce d’augmenter le taux de conversion !...
default alt text

Le développement web en entreprise : Tout ce que vous devez savoir en 2022

Le développement web est simplement un processus de développement d’un site web ou d’une application pour les entreprises. Il s’articule autour des sites Web, du développement d’applications Web et du...
default alt text

Comment expérimenter React Freeze avec React Suspense

Aujourd’hui, nous allons analyser un nouveau programme React : react-freeze. Cette petite bibliothèque utilise le mécanisme React Suspense pour empêcher l’activation de certaines parties de l’arboresc...