Skip to content

10. Módulos ES6

Image

Os módulos ES6 permitem-lhe criar aplicações JavaScript estruturadas em módulos independentes e reutilizáveis.

10.1. scripts [import-01, export-01]

O script [import-01] utilizará o módulo [export-01]. Isto é definido da seguinte forma:


// export par défaut d'un objet non nommé
export default {
  data: 2,
  do() {
    console.log(this.data);
  }
};

Comentários

  • As linhas [2–7] definem um objeto sem nome com as propriedades [data, do];
  • Linha 2: A instrução [export default] exporta este objeto. Por conseguinte, pode ser importado;

O módulo [export-01] é utilizado pelo script [import-01] da seguinte forma:


'use strict';
// import d'un objet exporté par défaut
import export01 from './export-01';
// utilisation de cet objet
export01.do();
// on peut importer un export par défaut sous n'importe quel nom
import data from './export-01';
console.log(data.data);

Comentários

  • As linhas 3 e 7 importam o objeto exportado por padrão do módulo [export-01] com dois nomes diferentes;
  • Uma vez importado, o objeto pode ser utilizado como se tivesse sido definido localmente no script;

Execução


[Running] C:\myprograms\laragon-lite\bin\nodejs\node-v10\node.exe -r esm "c:\Data\st-2019\dev\es6\javascript\modules\import-01.js"
2
2

10.2. scripts [import-02, export-02]

Estes scripts demonstram a exportação de um objeto nomeado.

O script [export-02] é o seguinte:


// export par défaut d'un objet nommé
const data = {
  data: 2,
  do() {
    console.log(this.data);
  }
};
// export
export default data;
  • linha 9: exportamos o objeto [data];

O facto de o objeto exportado ter ou não um nome não afeta a operação de importação. O script [import-02] é o seguinte:


'use strict';
// import d'un objet exporté par défaut
import module1 from './export-02';
// utilisation de cet objet
module1.do();
// on peut importer un export par défaut sous n'importe quel nom
import module2 from './export-02';
console.log(module2.data);

Execução


[Running] C:\myprograms\laragon-lite\bin\nodejs\node-v10\node.exe -r esm "c:\Data\st-2019\dev\es6\javascript\modules\import-02.js"
2
2

10.3. scripts [import-03, export-03]

Um módulo pode exportar vários elementos.

O script [export-03] é o seguinte:


// multi-exports
// object export
const data = {
  data: 2,
  do() {
    console.log(this.data);
  }
};
// export function
export { data };
function doSomething() {
  console.log("doSomething");
}
export { doSomething };

Comentários

  • Linhas 10 e 14: exportação de dois elementos. Um elemento é exportado utilizando a sintaxe [export {elemento}];

O script [import-03] utiliza o módulo [export-03] da seguinte forma:


'use strict';
// import d'un module [export03]
import {data, doSomething} from './export-03';
// utilisation des imports
data.do();
doSomething();
// autre écriture
import * as module from './export-03';
// utilisation de l'import
console.log(module.data);
module.doSomething();
  • linha 3: as [importações] são feitas utilizando os nomes exatos dos objetos exportados;
  • linha 8: pode importar todos os objetos exportados para um objeto com nome (aqui [módulo]);

Execução


[Running] C:\myprograms\laragon-lite\bin\nodejs\node-v10\node.exe -r esm "c:\Data\st-2019\dev\es6\javascript\modules\import-03.js"
2
doSomething
{ data: 2, do: [Function: do] }
doSomething