Hier sind die Zahlen
- min + gzip 26k
- gzip 90k
- Original 450 + k
Und React hat nicht viele Funktionen in seiner Dokumentation. Warum ist es so groß?
Ich habe das Gefühl, dass es sich um die Implementierung von leichtem DOM handelt. Aber ich möchte sicher sein.
Antworten:
Reagieren macht ziemlich viel! Der größte nicht offensichtliche Teil von React ist wahrscheinlich das Ereignissystem. React implementiert nicht nur ein eigenes Ereignis-Dispatching und -Bubbling, sondern normalisiert auch allgemeine Ereignisse in verschiedenen Browsern, sodass Sie sich nicht so viele Sorgen machen müssen. Beispielsweise ist SelectEventPlugin ein integriertes Ereignis- "Plugin", das ein
onSelect
Ereignis bereitstellt , das sich in allen Browsern gleich verhält.Die virtuelle DOM- Implementierung benötigt auch eine anständige Menge an Code. Es wird viel Aufwand für die Leistungsoptimierung aufgewendet, weshalb die nicht minimierte Version ReactPerf enthält , ein Tool zum Messen der Renderleistung. Beim Aktualisieren des DOM erledigt React auch einige praktische Dinge für Sie, z. B. die Beibehaltung einer Eingabeauswahl und die Beibehaltung der aktuellen Bildlaufposition.
React hat noch ein paar andere Tricks im Ärmel. Eines der coolsten ist, dass es das Rendern einer Komponente in eine HTML-Zeichenfolge vollständig unterstützt, auch wenn Sie keine Browserumgebung haben, sodass Sie eine Seite senden können, die funktioniert, noch bevor JS geladen wird.
Womit vergleichen Sie React?
react-15.0.2.min.js
ist43k (gzipped)
, aber jQuery ist 33k während esember-2.6.0.prod.js
ist363k (also gzipped)
. Offensichtlich machen diese Frameworks nicht genau die gleichen Dinge, aber sie haben viele Überlappungen, daher halte ich den Vergleich für vernünftig.Wenn Sie sich Sorgen über die Downloadgröße machen, würde ich mir keine Sorgen darüber machen, dass JS-Code dazu beiträgt. Hier ist eine Anzeige, die ich gerade auf der rechten Seite meiner Stapelüberlaufseite sehe:
Die Downloadgröße beträgt 95 KB - ich würde nicht zweimal darüber nachdenken, ein solches Bild in eine Seite aufzunehmen, da (selbst wenn ich mir Sorgen um die Leistung mache) normalerweise so viele andere leistungsbezogene Dinge zu beheben sind, die lukrativer sind.
Kurz gesagt, ich denke nicht, dass React so groß ist, und welche Größe es hat, hängt von den vielen kleinen Dingen ab, die es tut, um Ihnen zu helfen. Sie zitieren die kleine API von React als Grund dafür, dass der Code von React klein sein sollte, aber eine bessere Frage könnte sein: "Wie kann die API von React angesichts all der Dinge, die sie für Sie tut, so einfach sein?"
… Aber das ist eine ganz andere Frage. :) Hoffe, ich habe deine Frage beantwortet - freue mich zu erweitern, wenn ich es nicht getan habe.
quelle
Ein paar Gedanken ... Ich hatte einige der gleichen Bedenken hinsichtlich der Größe, aber nachdem ich es verwendet habe, kein Scherz, würde ich es verwenden, wenn es 5 MB groß wäre. Es ist einfach so gut. Trotzdem habe ich beschlossen, so viele Abhängigkeiten wie möglich von anderen Bibliotheken zu reduzieren. Ich habe jquery für zwei Dinge verwendet. Ajax und die automatische Ajax-Antwort- und Anforderungsbehandlung (beforeSend usw.), die behandelt wird, wenn sich ein Token nach der Anmeldung in einer Antwort befindet, und stellen Sie dann sicher, dass jede Ajax-Anforderung es zuvor zum Authorization-Header hinzugefügt hat Senden. Ich habe dies durch ein super kleines einfaches Stück natives Javascript ersetzt. Funktioniert super. Außerdem habe ich versucht, _underscore zu verwenden. Ich habe es durch lodash ersetzt, das kleiner und schneller ist, obwohl ich es derzeit nicht benutze, sodass es möglicherweise vollständig entfernt wird.
Hier ist ein Artikel von vielen auf Google, den ich gefunden habe und der einige Alternativen mit nativem JS über jquery bietet.
http://www.sitepoint.com/jquery-vs-raw-javascript-1-dom-forms/
quelle