web-dev-qa-db-fra.com

Pourquoi la taille de fichier de React est-elle si grosse au vu de sa petite API?

Voici les chiffres

  • min + gzip 26k
  • gzip 90k
  • d'origine 450 + k

Et React ne présente pas beaucoup de fonctionnalités dans sa documentation. Pourquoi est-il si gros?

J'ai l'impression que c'est la mise en œuvre de DOM légers. Mais je veux être sûr.

85
Eldar Djafarov

Réagir fait un peu! La plus grande partie non évidente de React est probablement le système d’événements - non seulement React implémente sa propre distribution et sa propre diffusion d’événements, elle normalise également les événements courants dans les navigateurs). Par exemple, SelectEventPlugin est un "plugin" intégré qui fournit un événement onSelect qui se comporte de la même manière dans tous les cas. navigateurs.

La mise en œuvre du DOM virtuel virtuel nécessite également une bonne quantité de code; beaucoup d’efforts sont consacrés à l’optimisation des performances, raison pour laquelle la version non terminée inclut ReactPerf , un outil permettant de mesurer les performances de rendu. Lors de la mise à jour du DOM, React fait également certaines choses pratiques pour vous, par exemple, conserver la sélection d’entrée et conserver la position de défilement actuelle.

React a également quelques astuces dans sa manche. L’un des plus intéressants est qu’il prend totalement en charge le rendu d’un composant en chaîne HTML même si vous n’avez pas d’environnement de navigateur. Vous pouvez ainsi envoyer une page qui fonctionne même avant le chargement de JS.


Que comparez-vous React contre? react-15.0.2.min.js Est 43k (gzipped), mais jQuery est 33k tandis que ember-2.6.0.prod.js Est 363k (also gzipped) Évidemment, ces cadres ne font pas exactement les mêmes choses, mais ils se chevauchent beaucoup, alors je pense que la comparaison est raisonnable.

Si vous vous inquiétez de la taille du téléchargement, je ne m'inquiéterais pas trop de la contribution du code JS à cela. Voici une annonce que je vois à droite de ma page Stack Overflow:

Sa taille de téléchargement est de 95 000 € - je n’y aurais pas hésité à inclure une image de ce type dans une page, car (même si je craignais les performances), il existe généralement de nombreux autres problèmes liés aux performances qui sont plus lucratifs.


En bref, je ne pense pas que React soit aussi gros que cela, et sa taille provient des nombreuses petites choses qu’il fait pour vous aider. Vous citez la petite API de React comme raison Le code de React devrait être petit, mais une meilleure question pourrait être: "Comment l'API de React peut-elle être si simple avec tout ce qu'elle fait pour vous?"

… Mais c'est une question totalement séparée. :) J'espère avoir répondu à votre question - heureux de développer si je ne le fais pas.

182
Sophie Alpert