Guide animé React Basic

L’auteur de la note, dont nous publions la traduction aujourd’hui, dit qu’il existe un Ă©cart entre l’utilisation de React pour dĂ©velopper des interfaces utilisateur et la nĂ©cessitĂ© de savoir comment React fonctionne rĂ©ellement. De nombreuses personnes qui utilisent React dans la pratique ne savent pas ce qui se passe dans les entrailles de cette bibliothĂšque. Ici, sous forme animĂ©e, nous allons considĂ©rer certains processus clĂ©s qui se produisent dans React lors de la formation des interfaces utilisateur.



Lancement d'une application React


Il convient de noter que pour créer des applications React, vous ne connaissez probablement pas les mécanismes internes de React. Mais j'ai décidé de préparer ce matériel pour tous ceux qui, pour une raison quelconque, veulent mieux comprendre le travail de React. Les processus décrits sont présentés sous forme animée. J'espÚre que cela contribuera à rendre leur analyse plus claire.

React, lorsque vous démarrez l'application pour la premiÚre fois, monte automatiquement la classe App dans le conteneur racine de l'application.


Premier montage <App />

DOM virtuel et algorithme de comparaison


Au cours des travaux du sous-systÚme React qui implémente l'algorithme Diffing, une recherche est effectuée pour les différences entre les deux DOM virtuels (modÚle d'objet de document virtuel, modÚle de document virtuel). Ralentissez un moment. Deux DOM virtuels? Il semble qu'il n'y ait qu'un seul DOM virtuel dans React ... Voyons-le. React compare le précédent DOM virtuel avec le nouveau. La mise à jour du DOM basé sur navigateur n'est effectuée que si, lors de la comparaison des DOM virtuels, des différences entre eux sont révélées.


Animation abstraite de l'algorithme de comparaison React. S'il s'avÚre que les deux arborescences DOM virtuelles sont différentes, le DOM réel dans le navigateur correspond à l'arborescence DOM virtuelle la plus récente

Considérez ce qui se passe sur l'animation ci-dessus.

  • Sur l'Ă©vĂ©nement click , un appel API.tweet() est API.tweet() avec le message contenant les donnĂ©es de la requĂȘte POST.
  • En rĂ©ponse Ă  la demande, la payload retournĂ©e, ces donnĂ©es sont envoyĂ©es au rappel (event) => { 
 } .
  • Si les donnĂ©es renvoyĂ©es Ă  la payload doivent entraĂźner une modification des props , une comparaison des arborescences DOM virtuelles est effectuĂ©e.
  • Si les arbres s'avĂšrent diffĂ©rents, l'arbre le plus rĂ©cent est envoyĂ© au navigateur.
  • Ensuite, le nouveau DOM virtuel devient ancien, et nous attendons de nouveaux Ă©vĂ©nements.

Composants React


Le composant React n'est qu'un objet JavaScript. React crĂ©e son propre DOM virtuel, qui est une arborescence de l'ensemble de la structure de l'interface utilisateur. React stocke l'arborescence DOM virtuelle en mĂ©moire. Avant que ce qui se trouve dans le DOM virtuel ne soit physiquement affichĂ© dans une fenĂȘtre de navigateur, React peut effectuer de nombreuses opĂ©rations pour ajouter, mettre Ă  jour et supprimer des Ă©lĂ©ments du DOM virtuel.

N'utilisez pas la méthode du composant render() pour tout ce qui n'est pas lié au rendu des éléments de l'interface utilisateur. Si vous devez modifier l'état ou les propriétés d'un composant, utilisez des méthodes standard du cycle de vie des composants React.

La méthode render () doit toujours rester une fonction pure.


La méthode render() met à jour le composant virtuel DOM. Si la nouvelle arborescence DOM virtuelle est différente de l'arborescence précédemment affichée, React, en plus de mettre à jour le DOM virtuel, mettra également à jour le DOM du navigateur réel. Le développeur n'a pas à mettre à jour directement le navigateur DOM directement. Cette rÚgle s'applique à tous les emplacements du code d'une application React. Il est particuliÚrement important lorsqu'il est appliqué à la fonction render() .


Ne polluez pas la méthode render () avec des appels de fonction qui mettent à jour le DOM directement

Dans la mĂ©thode render() , vous ne devez pas modifier l'Ă©tat du composant (mĂȘme en utilisant setState ) et effectuer des requĂȘtes HTTP. N'accĂ©dez pas Ă  jQuery Ă  partir de cette mĂ©thode, n'exĂ©cutez pas de requĂȘtes pour charger certaines donnĂ©es. Le fait est que la mĂ©thode render() doit ĂȘtre maintenue dans un Ă©tat oĂč elle serait une fonction pure. Cette mĂ©thode est toujours appelĂ©e au stade final des mĂ©canismes des composants. Au cours de sa mise en Ɠuvre, il suffit de mettre Ă  jour l'interface utilisateur. Il est supposĂ© que toutes les mises Ă  jour du DOM virtuel sont dĂ©jĂ  terminĂ©es.

ÉvĂ©nements du cycle de vie des composants


Lorsqu'un composant est monté pour la premiÚre fois dans le DOM, React déclenche son événement de cycle de vie componentWillMount . Une fois le composant virtuel affiché pour la premiÚre fois (c'est-à-dire qu'il est monté pour la premiÚre fois dans le DOM réel du navigateur), un autre événement est appelé - componentDidMount .

Il est prévu que la plupart des composants logiques invoqués à toutes les étapes de l'application seront décrits précisément dans leurs méthodes de cycle de vie.

Résumé


De nombreux dĂ©veloppeurs React utilisent aujourd'hui des composants et des crochets fonctionnels au lieu de composants basĂ©s sur des classes et leurs mĂ©thodes de cycle de vie. Les mĂ©thodes du cycle de vie sont mĂȘme considĂ©rĂ©es comme dangereuses. Si vous croyez Ă  la documentation de React, ces mĂ©thodes seront peut-ĂȘtre obsolĂštes Ă  l'avenir. C'est pourquoi l'auteur considĂšre cet article comme une sorte de description de technologies, dont certaines pourraient bientĂŽt tomber dans l'oubli. Mais lui, malgrĂ© cela, espĂšre que ce matĂ©riel sera utile Ă  ceux qui commencent tout juste Ă  se familiariser avec React et Ă  ceux qui s'intĂ©ressent Ă  l'histoire du dĂ©veloppement des technologies de dĂ©veloppement Web.

Chers lecteurs! Utilisez-vous des crochets React?

Source: https://habr.com/ru/post/fr463069/


All Articles