Exportações Default vs. Nomeadas
Parte da seção Programação Orientada a Objetos do Journey de JavaScript da Coddy. Lição 10 de 56.
Nos módulos JavaScript, você tem duas maneiras principais de exportar seu código: exports nomeados e exports padrão.
Exports nomeados permitem exportar vários valores de um módulo:
// math.js
export function add(a, b) {
return a + b;
}
export function subtract(a, b) {
return a - b;
}Ao importar exportações nomeadas, você deve usar exatamente os mesmos nomes entre chaves:
// app.js
import { add, subtract } from './math.js';
console.log(add(5, 3)); // 8
console.log(subtract(10, 4)); // 6Se precisar renomear uma importação nomeada, use a palavra-chave as para criar um alias:
// app.js
import { add as sum, subtract as minus } from './math.js';
console.log(sum(5, 3)); // 8
console.log(minus(10, 4)); // 6Exportações default permitem exportar um único valor principal de um módulo:
// user.js
const user = {
name: 'John',
age: 30
};
export default user;Ao importar uma exportação padrão, você pode usar qualquer nome que quiser sem chaves:
// app.js
import person from './user.js';
console.log(person.name); // 'John'Quando usar cada um? Use exportações nomeadas quando um módulo fornecer vários utilitários relacionados (por exemplo, uma coleção de funções auxiliares). Use uma exportação padrão quando um módulo tiver uma finalidade principal ou um valor principal (por exemplo, uma classe, um componente ou um objeto de configuração).
Você pode combinar os dois tipos de exportação em um único módulo:
// vehicle.js
export const wheels = 4;
export const doors = 4;
const car = {
brand: 'Toyota',
model: 'Corolla'
};
export default car;E importe-os juntos:
// app.js
import myCar, { wheels, doors } from './vehicle.js';
console.log(myCar.brand); // 'Toyota'
console.log(wheels); // 4Desafio
FácilVocê tem dois arquivos. Sua tarefa é configurar as exportações em calculator.js e as importações em main.js.
- Em
calculator.js: exportecalculatecomo padrão esquarecomo nomeada - Em
main.js: importe ambas as funções corretamente
Os testes verificarão:
- Exportação padrão usada para
calculate - Exportação nomeada usada para
square - Ambas as importações funcionam corretamente
Experimente você mesmo
// TODO: Importe ambas as funções aqui de calculator.js
// Teste
console.log(calculate(10, 5, '+')); // Deve exibir 15
console.log(square(4)); // Deve exibir 16Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Programação Orientada a Objetos
1Objetos e a Palavra-chave this
Revisão Rápida: ObjetosAdicionando Métodos a ObjetosEntendendo a Palavra-chave thisFunções ConstrutorasA Palavra-chave newDesafio de Recapitulação7Herança e a palavra-chave extends
HerançaA relação "é um"A palavra-chave extendsO método super()Herdando propriedades e métodosDesafio de recapitulação10Polimorfismo
O que é Polimorfismo?Sobrescrevendo Métodos HerdadosUsando superDesafio de Recapitulação13Composição vs. Herança
A relação "tem um" vs. "é um"Os limites da herança profundaConstruindo objetos2Organizando o Código
O que são Módulos?Exportando com exportImportando com importExportações Default vs. Nomeadas5Encapsulamento e Acesso
EncapsulamentoCampos de Classe Públicos e PrivadosMétodos PrivadosDesafio de Recapitulação8Organizando Código POO
Organizar Classes em Módulos11Projeto: Um Renderizador de Formas
Configuração: Classe Shape e ExportaçãoHerança da Classe CircleSobrescrita e Método AreaContador de Formas Estático14Sistema de Gerenciamento de Biblioteca
Projetando a BibliotecaClasse Livro com ComposiçãoValidação do Autor do LivroPratique por conta própria: Compilador de JavaScript online