Botón para abrir el Menú Botón para cerrar el Menú
Logo da empresa Alura
Iniciar Sesión Nuestros Planes
Formaciones Conoce a Luri
  • Programación _
  • Front End _
  • Data Science _
  • DevOps _
  • Innovación y Gestión _
Artículos de Tecnología > Front-end

¿Cómo funciona el import y export de JavaScript?

Alura
Mario Souto
Mario Souto
23/10/2020

Compartir

Mira este artículo:
  1. El caso más común: export default
  2. ¿Cómo exportar múltiples valores de un archivo?
  3. ¿Se puede mezclar todo?
  4. ¿Qué hemos visto hasta ahora?

¿Cómo funciona el import y export de JavaScript?

Enseñando JavaScript, Angular y React veo que esta duda es muy común tanto en aquellos que están comenzando con JavaScript como en personas que ya trabajan con el lenguaje, pero nunca exploraron el recurso, ¡así que veamos cómo usarla a diario!

Primero, es importante decir en JavaScript, cada archivo se considera un módulo y todas las variables y funciones que tiene sólo son accesibles dentro de él, a menos que las exportes explícitamente.

En el navegador, debes usar la tag script con type="module" para usar los recursos que se muestran aquí, si estás usando algún framework, no debes preocuparte y en NodeJS el soporte ya está disponible:). Recordando que, MDN tiene toda la referencia sobre este tema: import y export

El caso más común: export default

En el siguiente caso, siempre que creamos un archivo (módulo), y queremos exportar algún dato de él para acceder otro, haremos un código muy similar con el ejemplo siguiente:

// ## ex01/moduloA.js
const variable = 'Valor';
const variable2 = 'Outro Valor';
export default variable;
// ## ex01/moduloB.js
import Modulo;
console.log(Modulo); // => 'Valor'

Es importante destacar que, en este caso la variable2 no está disponible como un valor accesible en ex01/moduloB.js

También tenga en cuenta que al importar, no es necesario dar el nombre variable, el nombre es un apodo (o alias) y puedes elegir el que tenga más sentido dentro del contexto de la importación, recordando que, es una buena práctica hacer el import con el nombre del archivo la mayor parte del tiempo, dejando algo como moduleA.

// ## ex01/moduloB.js
import ModuloA;
console.log(ModuloA); // => 'Valor'

¿Cómo exportar múltiples valores de un archivo?

La primera opción, además de lo que vimos anteriormente, es exportar un objeto con los datos a los que queremos acceder en otro archivo:

// ## ex01/moduloA.js
const variable = 'Valor';
const variable2 = 'Otro Valor';
export default {
   variable: variable,
   variable2: variable2,
};
// ## ex01/moduloB.js
import Modulo;
console.log(Modulo); // { variable: 'Valor', variable2: 'Otro Valor' }

Una forma alternativa a lo que vimos ahora es hacer al declarar una variable o función, poner un exportar, como en el siguiente ejemplo:

// ## ex01/moduloA.js
export const variable = 'Valor';
export const variable2 = 'Otro Valor';
// ## ex01/moduloB.js
import { variable, variable2 };
console.log(variable, ' y ' ,variable2); // 'Valor y Otro Valor'

Observe que ahora, ya no estamos usando el importModulo y sí haciendo un object destructuring y accediendo a cada valor individualmente, también podríamos también hacer el import como import * as Modulo, por lo que cada valor que exportamos se agruparía dentro de un módulo.

¿Se puede mezclar todo?

¡Sí! Puedes hacerlo, simplemente basándose en el siguiente ejemplo:

// ## ex01/moduloA.js
export const variable = 'Valor';
export const variable2 = 'Otro Valor';
export default 'Valor default del módulo';
// ## ex01/moduloB.js
import ValorDelModulo, { variable, variable2 };
console.log(variable, ' y ' ,variable2); // 'Valor y Otro Valor'
console.log(ValorDelModulo); // Valor default del módulo'

¿Qué hemos visto hasta ahora?

El import y export son muy flexibles y si conoces otro caso más y quieres compartirlo conmigo, dejo el espacio abierto en mi twitter.

Si te interesa este tema, aquí en Alura tenemos capacitaciones de front-end, para principiantes y para aquellos que ya son desarrolladores web. En ellas, verás cómo programar en Javascript, HTML y CSS para construir sitios web.

Mario Souto
Mario Souto

Vivo no 220v, sempre atrás de um filme/rolê novo e codando desafios aleatórios em JavaScript. Adoro fazer sites e falar/dar aulas sobre isso no @nubank, meu canal no YouTube DevSoutinho e na @alura

Artículo Anterior
HTTP: Diferencias entre GET y POST
Siguiente Artículo
Cómo organizar el CSS en tu proyecto

Ver otros artículos sobre Front-end

Navegación

  • Planes
  • Instructores
  • Blog
  • Política de privacidad
  • Términos de uso
  • Sobre nosotros
  • Preguntas frecuentes

¡CONTÁCTANOS!

  • ¡Quiero entrar en contacto!

Blog

  • Programación
  • Data Science
  • Front End
  • Innovación y Gestión
  • DevOps

AOVS Sistemas de Informática S.A CNPJ 05.555.382/0001-33

SÍGUENOS EN NUESTRAS REDES SOCIALES

YouTube Facebook Instagram Linkedin Whatsapp Spotify

NOVEDADES Y LANZAMIENTOS

Aliados

  • Programa de aceleração Scale-Up Endeavor
  • En Alura somos unas de las Scale-Ups seleccionadas por Endeavor, programa de aceleración de las empresas que más crecen en el país.
  • Growth Academy 2021 do Google For Startups
  • Fuimos unas de las 7 startups seleccionadas por Google For Startups en participar del programa Growth Academy en 2021
Alura

Una empresa del grupo Alun

Logo do grupo Alun

AOVS Sistemas de Informática S.A CNPJ 05.555.382/0001-33

SÍGUENOS EN NUESTRAS REDES SOCIALES

YouTube Facebook Instagram Linkedin Whatsapp Spotify

Cursos

Cursos de Programación
Lógica de Programación | Java
Cursos de Front End
HTML y CSS | JavaScript | React
Cursos de Data Science
Data Science | Machine Learning | Excel | Base de Datos | Data Visualization | Estadística
Cursos de DevOps
Docker | Linux
Cursos de Innovación y Gestión
Transformación Ágil | Marketing Analytics

Alura

  • Educação em Tecnologia

    • logo fiap FIAP
    • logo casa do codigo Casa do Código
    • logo pm3 PM3 - Cursos de Produto
  • Mais Alura

    • logo alura start START BY Alura
    • logo alura lingua Alura Língua
    • logo alura para empresas Alura Para Empresas
    • logo alura latam Alura LATAM
  • Comunidade

    • logo tech guide Tech Guide
    • logo 7 days of code 7 days of code
    • logo Hipsters ponto Jobs Hipsters ponto Jobs
  • Podcasts

    • logo Hipster Network Hipster Network
    • logo Hipsters ponto Tech Hipsters ponto Tech
    • logo Dev sem fronteiras Dev sem Fronteiras
    • logo Like a Boss Like a Boss
    • logo IA Sob Controle IA Sob Controle
    • logo Mesa de Produto Mesa de Produto
    • logo Decode Decode
    • logo FIAPCast FIAPCast