Maison >interface Web >js tutoriel >Virtual DOM : technique derrière les mises à jour rapides du DOM de React.
Bonjour à tous, je suis ravi de lancer une nouvelle série d'articles dans lesquels je vais essayer d'expliquer divers concepts du monde de la programmation. Nous couvrirons tout, des termes comme idempotent et idiomatique aux concepts plus spécifiques liés aux bibliothèques et aux frameworks. Et aujourd’hui, nous allons aborder l’un de ces sujets : DOM virtuel.
Si vous trouvez cela utile, n'oubliez pas de Aimer, partager et commenter sur les sujets que vous aimeriez que j'aborde ensuite. Ne perdons plus de temps et sautons directement dans le DOM virtuel !
REMARQUE : Avant de continuer, il est important de comprendre que le concept de DOM virtuel n'est pas exclusif à React. D'autres bibliothèques frontales JavaScript, comme Vue, l'utilisent également pour améliorer les performances de rendu.
Le DOM (Document Object Model) est une représentation arborescente d'un document HTML (ou d'une page Web/application Web) utilisant des nœuds ou des objets. Le DOM a été conçu pour que les bibliothèques et frameworks frontend (javascript) puissent interagir avec et manipuler le document par programme via son API.
Bien que le DOM offre un moyen efficace de manipuler un document via son API, les performances peuvent devenir un problème lorsqu'il y a des milliers d'éléments à l'écran. En effet, les mises à jour dans le DOM impliquent souvent la destruction et la recréation de sous-arbres entiers.
C'est là que le DOM virtuel entre en jeu. Le DOM virtuel est une représentation légère en mémoire du DOM réel, permettant une synchronisation rapide et efficace des modifications avec le DOM réel — un processus connu sous le nom de Réconciliation.
Les éléments clés à retenir ici sont :
Dans cette optique, les bibliothèques JavaScript qui utilisent l'API DOM créent leur propre DOM virtuel et le manipulent. Ils mettent à jour le Real DOM uniquement lorsque cela est nécessaire, et même dans ce cas, avec un minimum d'opérations.
React JS est une bibliothèque populaire développée par Facebook pour créer des interfaces utilisateur. En raison de sa simplicité, il a gagné en popularité et est utilisé dans de nombreux projets Web modernes.
Comme beaucoup d'autres bibliothèques frontales JS, React utilise le concept de DOM virtuel pour gérer efficacement les nouveaux rendus et les mises à jour dans une application.
React utilise un algorithme de comparaison ainsi qu'une technique de réconciliation pour optimiser ce processus. (Plus précisément, la bibliothèque ReactDOM gère cela en coulisses.)
Décomposons-le étape par étape :
Fonction render() du composant React
Algorithme de différence
2.1. Étapes de l'algorithme de comparaison
2.2. Pourquoi utiliser des clés ?
Comme mentionné dans le dernier point, l'algorithme de différence parcourt les listes d'enfants et apporte des modifications si nécessaire. Si vous n'utilisez pas de clés dans une liste d'enfants, les performances pourraient en souffrir et vous pourriez rencontrer un comportement inattendu.
Voyons un exemple :
<ul> // old list <li>apple</li> <li>pineapple</li> </ul> <ul> // new list <li>apple</li> <li>pineapple</li> <li>grape</li> </ul>
Dans le scénario ci-dessus, l'algorithme peut réellement gérer efficacement la modification. Il examine chaque enfant d'index et trouve
Mais disons, nous voulons ajouter le
<ul> // old list <li>apple</li> <li>pineapple</li> </ul> <ul> // new list <li>apple</li> <li>pineapple</li> <li>grape</li> </ul>
Ici, les performances de l'algorithme diminueront à mesure qu'il verra
Pour résoudre ce goulot d'étranglement des performances, l'équipe React utilise la clé qui est un identifiant unique attaché à la liste des éléments enfants qui peuvent être utilisés par l'algorithme pour déterminer si l'élément peut être laissé intact et il suffit de réorganiser le poste ou doit être recréé.
<ul> // old list <li>apple</li> <li>pineapple</li> </ul> <ul> // new list <li>grape</li> <li>apple</li> <li>pineapple</li> </ul>
React peut désormais utiliser les attributs Key et repositionner uniquement les éléments enfants non mis à jour lors de l'ajout du nouvel élément enfant.
3) La fonction render() de ReactDOM
Enfin, la fonction render() de ReactDOM est appelée, ce qui concilie les différences entre le nouveau Virtual DOM et le Real DOM. Cela entraîne un minimum d'opérations nécessaires pour restituer le HTML efficacement.
Dans cet article, nous avons exploré le DOM virtuel, une technique utilisée par de nombreuses bibliothèques frontales pour gérer efficacement les modifications de données et d'éléments avec un minimum d'opérations DOM. Nous avons également examiné comment React utilise spécifiquement un processus de comparaison et de réconciliation pour optimiser les mises à jour.
J'espère que cet article vous a aidé à mieux comprendre le fonctionnement du DOM virtuel. Même si vous connaissiez le concept, j'espère Vous savez maintenant ce qu'est Virtual DOM et comment il contribue à la création d'un environnement frontend optimisé.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!