Aquí están los números
- min + gzip 26k
- gzip 90k
- original 450 + k
Y React no tiene muchas características en su documentación. porque es tan grande?
Tengo la sensación de que es la implementación de DOM ligero. Pero quiero estar seguro.
Aquí están los números
Y React no tiene muchas características en su documentación. porque es tan grande?
Tengo la sensación de que es la implementación de DOM ligero. Pero quiero estar seguro.
Respuestas:
¡React hace bastante! La mayor parte no obvia de React es probablemente el sistema de eventos: React no solo implementa su propio envío y propagación de eventos, sino que normaliza los eventos comunes en los navegadores para que no tenga que preocuparse tanto por eso. Por ejemplo, SelectEventPlugin es un "complemento" de eventos integrado que proporciona un onSelect
evento que se comporta de la misma manera en todos los navegadores.
La implementación del DOM virtual también requiere una cantidad decente de código; se dedica mucho esfuerzo a la optimización del rendimiento, razón por la cual la versión no reducida incluye ReactPerf , que es una herramienta para medir el rendimiento del renderizado. Al actualizar el DOM, React también hace algunas cosas convenientes para usted, como mantener cualquier selección de entrada y mantener la misma posición de desplazamiento actual.
React también tiene algunos otros trucos bajo la manga. Uno de los mejores es que es totalmente compatible con la representación de un componente en una cadena HTML incluso si no tiene un entorno de navegador, por lo que puede enviar una página que funcione incluso antes de que se cargue JS.
¿Con qué estás comparando React? react-15.0.2.min.js
es 43k (gzipped)
, pero jQuery es 33k mientras que ember-2.6.0.prod.js
es 363k (also gzipped)
. Obviamente, estos marcos no hacen exactamente las mismas cosas, pero tienen mucha superposición, por lo que creo que la comparación es razonable.
Si le preocupa el tamaño de la descarga, no me preocuparía demasiado que el código JS contribuya a eso. Aquí hay un anuncio que veo en el lado derecho de mi página de Stack Overflow en este momento:
Su tamaño de descarga es de 95k; no lo pensaría dos veces antes de incluir una imagen como esa en una página porque (incluso si estuviera preocupado por el rendimiento) generalmente hay muchas otras cosas relacionadas con el rendimiento que corregir que son más lucrativas.
En resumen, no creo que React sea tan grande, y el tamaño que tiene proviene de las muchas cosas pequeñas que hace para ayudarte. Citas la pequeña API de React como una razón por la que el código de React debería ser pequeño, pero una mejor pregunta podría ser: "¿Cómo puede la API de React ser tan simple dadas todas las cosas que hace por ti?"
… Pero esa es una pregunta totalmente separada. :) Espero haber respondido a tu pregunta, feliz de expandirme si no lo hice.
Un par de pensamientos ... Tenía algunas de las mismas preocupaciones con su tamaño, pero después de usarlo, no es broma, lo usaría si tuviera 5 MB de tamaño. Es tan bueno. Dicho esto, decidí reducir tantas dependencias de otras bibliotecas como fuera posible. Estaba usando jquery para dos cosas ... ajax y la respuesta automática ajax y el manejo de solicitudes (beforeSend, etc.) que manejarían cuando un token estaba en una respuesta después del inicio de sesión, y luego me aseguraba de que cada solicitud ajax lo agregara al encabezado de Autorización antes enviando. Reemplacé esto con un pequeño fragmento de javascript nativo. Funciona genial. Además, estaba tratando de usar _underscore. Lo reemplacé con lodash, que es más pequeño y más rápido, aunque actualmente no lo estoy usando, por lo que puedo eliminarlo por completo.
Aquí hay un artículo, de muchos en Google, que encontré que tiene algunas alternativas usando JS nativo sobre jquery.
http://www.sitepoint.com/jquery-vs-raw-javascript-1-dom-forms/