Módulos JavaScript


Índice

    Mostrar índice


Módulos

Os módulos JavaScript permitem dividir seu código em arquivos separados.

Isso torna mais fácil manter uma base de código.

Os módulos são importados de arquivos externos com a instrução import.

Os módulos também dependem de type="module" na tag <script>.

Exemplo

<script type="module">
import message from "./message.js";
</script>

Experimente você mesmo →

<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Modules</h1>

<p id="demo"></p>

<script type="module">
import message from "./message.js";

document.getElementById("demo").innerHTML = message();

</script>

</body>
</html>

Exportar

Módulos com funções ou variáveis podem ser armazenados em qualquer arquivo externo.

Existem dois tipos de exportações: Exportações Nomeadas e Exportações Padrão.


Exportações nomeadas

Vamos criar um arquivo chamado person.js, e preencha-o com as coisas que queremos exportar.

Você pode criar exportações nomeadas de duas maneiras. Em linha individualmente ou todos de uma vez na parte inferior.

Em linha individualmente:

person.js

export const name = "Jesse";
export const age = 40;

De uma vez na parte inferior:

person.js

const name = "Jesse";
const age = 40;

export {name, age};

Exportações padrão

Vamos criar outro arquivo, chamado message.js, e use-o para demonstrar a exportação padrão.

Você só pode ter uma exportação padrão em um arquivo.

Exemplo

message.js

const message = () => {
  const name = "Jesse";
  const age = 40;
  return name + ' is ' + age + 'years old.';
};

export default message;


Importar

Você pode importar módulos para um arquivo de duas maneiras, com base no nome deles exportações ou exportações padrão.

As exportações nomeadas são construídas usando chaves. As exportações padrão não são.

Importar de exportações nomeadas

Importe exportações nomeadas do arquivo person.js:

import { name, age } from "./person.js";

Experimente você mesmo →

<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Modules</h1>

<p id="demo"></p>

<script type="module">
import { name, age } from "./person.js";

let text = "My name is " + name + ", I am " + age + ".";

document.getElementById("demo").innerHTML = text;
</script>

</body>
</html>

Importar de exportações padrão

Importe uma exportação padrão do arquivo message.js:

import message from "./message.js";

Experimente você mesmo →

<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Modules</h1>

<p id="demo"></p>

<script type="module">
import message from "./message.js";

document.getElementById("demo").innerHTML = message();

</script>

</body>
</html>

Observação

Os módulos funcionam apenas com o protocolo HTTP(s).

Uma página da web aberta por meio do protocolo file:// não pode usar importação/exportação.