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)); // 3Importar 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); // LuizDeclaraçã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 defaultpor 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 }