In het JavaScript-ecosysteem heeft de module-structuur zich gevestigd als een essentiële component, vooral met de invoering van ECMAScript 6 (ES6). Hier leer je hoe je de nieuwe module-definities effectief kunt gebruiken om je code modulair en onderhoudbaar te maken. Deze handleiding zal je de basisprincipes van het werken met JavaScript-modules bijbrengen, inclusief het gebruik van import- en export-instructies.
Belangrijkste bevindingen
- ECMAScript-modules maken een duidelijke scheiding van de code mogelijk.
- Het importeren en exporteren van functies en variabelen verbetert de module-overzichtelijkheid.
- Het gebruik van "default exports" en "named exports" optimaliseert de omgang met module-inhoud.
- Fouten in de module-import kunnen beter worden herkend door de invoering van een strikte modus (strict mode).
Stappenplan
1. Basisprincipes van de module-structuur
Je begint met het laden van een module in een HTML-bestand. Een typisch voorbeeld begint met een index.html-bestand dat al is geconfigureerd voor het laden van JavaScript-scripts.

2. Importeren van een module
Nu het script als module is geladen, kun je een ander bestand importeren. Maak een nieuw JavaScript-bestand aan, bijv. modOne.js. In je hoofdscript (main.js) kun je nu de module importeren door import te gebruiken.
Met deze opdracht importeer je alle exports van de module onder de naam ModOne.

3. Exporteren van functies
Om een functie uit een module beschikbaar te maken, moet je deze exporteren. Dit gebeurt door het toevoegen van het export-sleutelwoord vóór de functiedefinitie.

Zo wordt de functie doIt geëxporteerd en is nu beschikbaar in andere modules.
4. Gebruik van genummerde exports
Als je alleen bepaalde delen van een module wilt importeren, kun je ook genummerde exports gebruiken. In plaats van de hele module te importeren, is het verstandig om alleen de benodigde functies te importeren.

5. Default-exports
Een ander belangrijk concept zijn Default-exports, die het mogelijk maken om een enkele standaardexport uit een module te definiëren, die dan zonder accolades kan worden geïmporteerd.
6. Omgaan met naamconflicten
Als twee modules een functie met dezelfde naam exporteren, kun je een alias gebruiken bij het importeren om conflicten te voorkomen.
7. Foutherkenning door Strict Mode
De nieuwe modules van ECMAScript werken standaard in de Strict Mode. Deze beperkingen helpen je om potentiële fouten vroegtijdig te herkennen door problematische syntax en logica te vermijden.
Als je probeert een functie te deklareren die de naam van een bestaand import überschreibt, krijg je onmiddellijk een fout, wat de debugging-tijd aanzienlijk verkort.
8. Het belang van relatieve paden
Bij het importeren van modules is het belangrijk om de juiste relatieve of absolute paden op te geven. Zorg ervoor dat het bestand bestaat en gebruik de extensie.js om problemen bij de uitvoer te voorkomen.
9. Samenvatting van het gebruik van modules
Om de functies en features van de nieuwe module-structuur effectief te gebruiken, is het essentieel om de principes van import en export te begrijpen. Hiermee kun je je code modulariseren en de leesbaarheid aanzienlijk verbeteren.
Samenvatting
Module-structuren in JavaScript bieden een uitstekende manier om je code netjes en herbruikbaar te maken. Je hebt geleerd hoe je modules kunt laden, functies kunt exporteren en importeren, terwijl je naamconflicten en fouten in de code effectief behandelt.
Veelgestelde vragen
Wat zijn de belangrijkste voordelen van ES6-modules?ES6-modules maken code-organisatie, herbruikbaarheid en voorkomen naamconflicten mogelijk.
Hoe importeer ik meerdere functies uit een module?Je kunt meerdere functies importeren door ze met komma's te scheiden: import { doItOne, doItTwo } from './modOne.js';
Wat is een Default-export?Een Default-export is de hoofduitvoer van een module, die zonder accolades kan worden geïmporteerd.
Moet ik de bestandsextensie altijd aangeven bij imports?Ja, in de browser is het noodzakelijk om de bestandsextensie op te geven om het bestand correct te kunnen laden.
Waarom is de Strict Mode belangrijk bij ES6-modules?Strict Mode helpt om foute syntax en problemen vroegtijdig te herkennen door beperkende regels op de code toe te passen.