Atualizado: 07/12/2024

Exportando e Importando Componentes de Módulos - JavaScript

Exportação Nomeada de Componentes de Módulo

Para que possamos conectar e usar componentes de um módulo (variáveis/constantes/funções/classes) em outro módulo, precisamos exportá-los. Podemos exportar cada componente individualmente. Para isso, usamos a palavra-chave export antes da definição do componente. Por exemplo, considere o seguinte módulo message.js:

// exportando uma variável
export let welcome = "Welcome";
// exportando uma constante
export const hello = "Hello";

// exportando uma função
export function sayHello() {
  console.log("Hello Programício");
}

// exportando uma classe
export class Messenger {
    send(text) {
        console.log("Sending message:", text);
    }
}

Aqui estamos exportando a variável welcome, a constante hello, a função sayHello() e a classe Messenger. Vale ressaltar que não precisamos exportar todos os componentes do módulo; alguns componentes podem ser usados apenas dentro do próprio módulo.

Como alternativa, podemos exportar todos os componentes juntos como uma lista:

let welcome = "Welcome";
const hello = "Hello";

function sayHello() {
  console.log("Hello Programício");
}

class Messenger {
    send(text) {
        console.log("Sending message:", text);
    }
}

export { welcome, hello, sayHello, Messenger }

Ambos os métodos de exportação são equivalentes.

Importação Nomeada de Componentes de Módulo

Podemos importar componentes de forma individual. Para isso, usamos o operador import seguido pelos nomes dos componentes entre chaves. Após o operador from, especificamos o módulo de onde estamos importando.

import { componente1, componente2, ... componenteN } from "caminhoDoMódulo";

Por exemplo, vamos importar no módulo main.js os componentes exportados do módulo message.js:

import { sayHello, welcome, Messenger } from "./message.js";

sayHello();

const telegram = new Messenger();
telegram.send(welcome);

Aqui, estamos importando do módulo message.js a variável welcome, a função sayHello() e a classe Messenger. Não é necessário importar todos os componentes do módulo; podemos importar apenas aqueles que precisamos e pretendemos usar.

Ao executar a página no navegador, veremos o resultado dos componentes importados no módulo main.js no console:

Hello Programício
Sending message: Welcome

Importação de Todo o Módulo

Se o módulo tiver muitos componentes e quisermos usar todas as suas funcionalidades, listar todos os componentes pode ser cansativo. Nesse caso, podemos importar todo o módulo de uma vez:

import * as alias_do_módulo from "módulo";

Após o operador import, usamos o asterisco para indicar que queremos importar todos os componentes exportados. O alias do módulo, especificado após as, será usado para referenciar o módulo importado.

Por exemplo, vamos importar todo o módulo message.js no arquivo main.js:

import * as MessageModule from "./message.js";

MessageModule.sayHello();

const telegram = new MessageModule.Messenger();
telegram.send(MessageModule.welcome);

Neste caso, o módulo message.js é referenciado pelo identificador MessageModule. Podemos usar qualquer nome como alias do módulo. Em seguida, podemos acessar todos os componentes exportados do módulo através do alias, como MessageModule.sayHello().

Política de Privacidade

Copyright © www.programicio.com Todos os direitos reservados

É proibida a reprodução do conteúdo desta página sem autorização prévia do autor.

Contato: programicio@gmail.com