10. Moduli ES6

I moduli ES6 consentono di creare applicazioni JavaScript strutturate in moduli indipendenti e riutilizzabili.
10.1. script [import-01, export-01]
Lo script [import-01] utilizzerà il modulo [export-01]. Questo è definito come segue:
// export par défaut d'un objet non nommé
export default {
data: 2,
do() {
console.log(this.data);
}
};
Commenti
- Le righe [2–7] definiscono un oggetto senza nome con le proprietà [data, do];
- Riga 2: L'istruzione [export default] esporta questo oggetto. Può quindi essere importato;
Il modulo [export-01] viene utilizzato dallo script [import-01] come segue:
'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);
Commenti
- Le righe 3 e 7 importano l'oggetto esportato predefinito dal modulo [export-01] con due nomi diversi;
- Una volta importato, l'oggetto può essere utilizzato come se fosse stato definito localmente nello script;
Esecuzione
[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. script [import-02, export-02]
Questi script mostrano l'esportazione di un oggetto con nome.
Lo script [export-02] è il seguente:
// export par défaut d'un objet nommé
const data = {
data: 2,
do() {
console.log(this.data);
}
};
// export
export default data;
- riga 9: esportiamo l'oggetto [data];
Il fatto che l'oggetto esportato abbia un nome o meno non influisce sull'operazione di importazione. Lo script [import-02] è il seguente:
'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);
Esecuzione
[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. script [import-03, export-03]
Un modulo può esportare più elementi.
Lo script [export-03] è il seguente:
// multi-exports
// object export
const data = {
data: 2,
do() {
console.log(this.data);
}
};
// export function
export { data };
function doSomething() {
console.log("doSomething");
}
export { doSomething };
Commenti
- Righe 10 e 14: esportazione di due elementi. Un elemento viene esportato utilizzando la sintassi [export {elemento}];
Lo script [import-03] utilizza il modulo [export-03] come segue:
'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();
- riga 3: le [importazioni] vengono effettuate utilizzando i nomi esatti degli oggetti esportati;
- riga 8: è possibile importare tutti gli oggetti esportati in un oggetto denominato (in questo caso [module]);
Esecuzione
[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