JavaScript moderno com ES6–ES13 (Tutorial de JS)

Importação dinâmica de módulos JavaScript explicada de forma simples

Todos os vídeos do tutorial JavaScript moderno com ES6-ES13 (Tutorial de JS)

A importação dínamica de módulos em JavaScript permite carregar módulos em tempo de execução com base em condições ou eventos. Isso melhora o desempenho de suas aplicações, pois nem todos os módulos precisam ser carregados no início. Neste guia, você aprenderá a usar importações dinâmicas de forma eficaz para otimizar suas aplicações web.

Principais insights

  • Importações estáticas são exigidas no início de um arquivo e não podem ser utilizadas dentro de funções.
  • Importações dinâmicas permitem que módulos sejam carregados em qualquer parte do código e que Promises retornadas sejam processadas.
  • O uso de await facilita o manuseio de Promises e permite uma sintaxe mais legível.

Guia passo a passo

1. Importações estáticas vs. importações dinâmicas

Antes de começar com importações dinâmicas, você deve estar ciente das diferenças entre importações estáticas e dinâmicas. Importações estáticas devem estar no início de um arquivo e podem ser usadas em todo o módulo. Elas são fáceis de identificar e oferecem dependências claras. Importações dinâmicas, por outro lado, permitem que você carregue módulos de forma flexível quando necessário. Essa capacidade é chamada de "Lazy Loading" e pode reduzir significativamente o tempo de carregamento da sua aplicação.

Importação dinâmica de módulos JavaScript explicada de forma simples

2. Introdução à importação dinâmica

Para começar a usar importação dinâmica de módulos, você pode usar a função import(). Essa função retorna uma Promise, o que significa que você pode trabalhar com o módulo assim que a Promise for cumprida. Neste momento, você criará uma função onde realizará uma importação dinâmica. Isso lhe dará a flexibilidade de carregar módulos com base em ações do usuário ou certas condições.

3. Criando uma função para importação dinâmica

Agora você pode criar sua função. Vamos chamá-la de main. Nesta função, você importará o módulo dinamicamente. Não se esqueça de especificar o caminho apropriado para seu módulo.

Essa função só carregará o módulo quando main() for chamada, e não durante o carregamento inicial da página.

4. Processamento do módulo importado

Uma vez que o módulo é carregado com sucesso, você pode acessar os elementos exportados do módulo. Observe que o comando import() retorna uma Promise. Isso significa que você deve definir uma função de callback com.then(), que será executada quando a Promise for cumprida.

Aqui você tem seu módulo carregado dinamicamente e pode acessá-lo como se tivesse sido importado estaticamente.

5. Usando async/await para uma sintaxe simplificada

Para facilitar o manuseio da Promise, você pode usar a sintaxe async/await. Para fazer isso, você precisa adicionar a palavra-chave async antes da palavra-chave function.

Esse método é particularmente legível, pois o código parece que a importação foi executada de forma síncrona.

6. Integração na aplicação

Suponha que você queira carregar um módulo apenas sob certas condições - por exemplo, quando o usuário clica em um botão.

Assim, o módulo só será carregado quando o usuário clicar no botão, o que melhora o desempenho da sua aplicação.

7. Set Timeout

Para tornar a dinâmica ainda mais evidente, você também pode usar um timeout para atrasar o carregamento do módulo.

Aqui, main será chamada após 2 segundos, carregando o módulo dinamicamente.

Resumo - Importação dinâmica de módulos em JavaScript

Neste guia, você aprendeu como implementar importações dinâmicas em JavaScript. Você aprendeu as diferenças entre importações estáticas e dinâmicas, os fundamentos da sintaxe e viu como trabalhar com Promises e async/await. Essas técnicas ajudarão a tornar suas aplicações web mais eficazes e eficientes.

Perguntas frequentes

Como funciona a importação dinâmica em JavaScript?A importação dinâmica ocorre através da função import(), que retorna uma Promise e permite que módulos sejam carregados em tempo de execução.

Quando devo usar importações dinâmicas?Importações dinâmicas são ideais quando você deseja carregar módulos apenas quando necessário, para reduzir o tempo de inicialização da sua aplicação.

Qual é a diferença entre importações estáticas e dinâmicas?Importações estáticas devem estar no início de um arquivo e são carregadas imediatamente em tempo de compilação, enquanto importações dinâmicas podem ser usadas em qualquer lugar do código e são carregadas em tempo de execução.