from - importar archivos javascript
¿Cuándo debo usar paréntesis con las importaciones? (2)
Tengo dos archivos, el primero es todoHelper.js
tiene
export const addTodo = (list, item) => [...list, item]
más adelante quiero usar
addTodo
en otro archivo, simplemente
import {addTodo} from ''./todoHelpers''
Pero también veo personas que realizan exportaciones por defecto en lugar de solo exportar. Cuales son las diferencias
El uso de la palabra clave predeterminada con la exportación nos da la libertad de importar con un nombre de alias
export default k // in file my.js
se puede importar con el nombre de alias ''b''
import b from ''my.js''
Solo puede tener un valor predeterminado de exportación por archivo y, por lo tanto, cuando exporta valores predeterminados como
export default AddTodo = (list, item) => [...list, item]
Puedes importarlo como
import MyAddTodo from ''./todoHelpers''
Como Babel sabe que está intentando acceder al componente predeterminado, puede acceder a él en su archivo con cualquier nombre.
Ahora supongamos que lo haces
export const AddTodo = (list, item) => [...list, item]
Puede tener múltiples exportaciones de este tipo en su archivo como
export const AddTodo = (list, item) => [... list, item] export const DeleteTodo = (list, item) => [... list, item]
y cuando importes tendrás que desestructurarlos como
import {AddTodo, DeleteTodo}from ''./todoHelpers''
Ahora, dado que tiene múltiples exportaciones de este tipo, Babel no sabrá a qué componente está intentando acceder si accede con un nombre diferente como
import {MyAddTodo, MyDeleteTodo}from ''./todoHelpers''
Si desea hacer esto, tendrá que importarlos tal como están y cambiar su nombre como
import {AddTodo as MyAddTodo, DeleteTodo as MyDeleteTodo}from ''./todoHelpers''
Entonces, como práctica general,
default export
el componente principal y el resto puede tenerlo como exportación normalmente o cuando solo tiene un componente que necesita exportar desde un archivo, entonces puede elegir lo que quiera, pero una buena manera será
export
Por defecto.