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>.
<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>
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.
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.
person.js
export const name = "Jesse";
export const age = 40;
person.js
const name = "Jesse";
const age = 40;
export {name, age};
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.
message.js
const message = () => {
const name = "Jesse";
const age = 40;
return name + ' is ' + age + 'years old.';
};
export default message;
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.
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>
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>
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.