This graph shows how many times the word ______ has been mentioned throughout the history of the program.
¿Por qué hay gente que importa React así en lugar de importar así?
Vale, en realidad, hoy en día ninguna de las dos deberías utilizarla, ni la primera ni la segunda.
Y te explico cuál es la diferencia.
La diferencia es sutil, pero a la vez importante.
La primera, lo que haces es importar todo React, todo React, desde React.
Entonces tú tendrías la posibilidad de hacer React.Createlement, React.UseState, React.Lo que sea.
Y lo que estás haciendo aquí es importar toda la biblioteca de React, toda entera, toda sin excepción.
En cambio, lo que haces aquí de importar por asterisco todo como React, aquí lo que estás haciendo en realidad,
aunque puedas utilizar lo mismo, lo que esto significa es que estás importando así.
CreateElement, UseState, UseEffect, todos, todos, todos los módulos que está exportando React,
los estás importando uno a uno, que sería el asterisco, ¿vale? Asterisco es todo.
Y los te estás agrupando como React.
La diferencia que hay, claro, tú dirías, bueno, pero esto entonces funciona exactamente igual.
Sí y no, porque mientras que la primera lo que hace es que lo está aglutinando todo,
o sea, no se lo está aglutinando, lo que estás accediendo es a un objeto que lo tiene todo,
esto lo que estás haciendo es importando los módulos de forma separada,
aunque los estás trayendo todos.
Por lo tanto, esta segunda forma es más óptima porque tienes tree shaking.
El tree shaking lo que significa es que si, por ejemplo, en tu código no utilizas el CreateElement,
pues no lo importaría.
También te digo una cosa, esto es una micro optimización en el caso de React,
porque React no es una librería muy modular que se diga.
Por ejemplo, alguien puede decir, no, lo hago así, porque si no uso el UseMemo,
pues entonces esto nunca entra en el bundle, ¿vale?
No se importa y no se guarda y no se le da al usuario.
Bueno, pero ya te digo que estas dos formas ya no tienen sentido.
De hecho, cuando yo esté haciendo este import React, esto yo diría que no es necesario
porque ya no se hace import React, esto ya no se hace.
Esto lo hace ahora Babel y Babel lo que hace, claro,
ahora como estamos importando solo la parte que necesitamos,
Babel lo que hace es que cuando nota que necesitas aquí JSX,
directamente importa una cosita que se llama JSX, que tiene aquí,
y solo importa esa parte que necesita.
Así que a día de hoy no deberíamos utilizar ninguna de las dos,
o sea, no deberíamos hacer esto.
Lo que pasa es que si tienes una aplicación antigua o lo que sea,
sí que lo puedes necesitar.
Pero ya te digo que si puedes, no lo uses, si puedes,
porque no tiene sentido utilizarlo.
¡Gracias!
¡Gracias!