ES Modules
ES Modules, ou ECMAScript Modules, são a implementação de módulos padrão do JavaScript, introduzida no ECMAScript 6 (também conhecido como ES6). Ao contrário do CommonJS, os módulos ES são assíncronos por padrão, o que significa que as dependências são resolvidas de forma assíncrona, melhorando a eficiência em ambientes onde o carregamento assíncrono é preferível, como navegadores da web.
Declaração import
Uso básico
import { [variáveis...], [funções...] } from "[arquivo]"
Nota
[arquivo]
é necessário informar o caminho relativo do arquivo
import { nome, sobrenome, idade, soma } from "./modulo1"
console.log(nome, sobrenome, idade, soma(10, 10));
Importar uma variável/função/classes com outro nome
import { [variável/função/classes] as [novo nome] } from "[arquivos]"
import { nome as luiz } from "./modulo1";
const nome = "João";
console.log(nome, luiz);
import { Pessoa as NovaPessoa } from "./modulo1";
Importar tudo de um arquivo
import * as [apelido] from "[arquivo]"
import * as MeuModulo from "./modulo1";
console.log(MeuModulo.luiz); // Luiz
console.log(MeuModulo.sobrenome); // Miranda
console.log(MeuModulo.idade); // 30
console.log(MeuModulo.soma(1, 2)); // 3
Importar uma variável/função/classe padrão do arquivo (export default
)
import [export padrão], { [variável/função/classe] } from "[arquivo]"
Nota
Quando for importar uma variável/função/classe padrão do arquivo, não se deve utilizar
{}
.
// modulo1.js
export const nome = "Luiz";
export default (x, y) => x + y;
// index.js
import soma, { nome } from "./modulo1";
console.log(soma(1, 2)); // 3
console.log(nome); // Luiz
Declaração export
Declarar uma variável/função/classes e depois exportá-la
export { [variáveis...], [funções...], [classes...] }
const nome = "Luiz";
const sobrenome = "Miranda";
const idade = 30;
function soma(x, y) {
return x + y;
}
export { nome, sobrenome, idade, soma };
Exportar uma variável/função/classes com outro nome
export { [variável/função/classes] as [novo nome] }
const nome = "Luiz";
const sobrenome = "Miranda";
const idade = 30;
function soma(x, y) {
return x + y;
}
export { nome as luiz, sobrenome, idade, soma };
Declarar e exportar uma variável/função/classes
export [assinatura da variável/função/classe]
export const sobrenome = "Miranda";
export function soma(x, y) {
return x + y;
}
export class Pessoa {
constructor(nome, sobrenome) {
this.nome = nome;
this.sobrenome = sobrenome;
}
}
Declaração export default
A declaração export default
serve para definir um export
de uma variável/função/classe padrão do arquivo.
Observação
Só é permitido ter 1
export default
por arquivo
Exportar funções/classes
export default [assinatura da função/classe]
export default function soma(x, y) {
return x + y;
}
export default class Pessoa {
// ...
}
Exportar variáveis
// declaração da variável
export { [variável] as default }
const nome = "Luiz";
const sobrenome = "Otávio";
export { nome as default, sobrenome }