Exportation individuelle
Dans notre fichier à exporter, nous allons exporter chaque propriété individuellement.
Méthode : index.html
N'oubliez pas d'ajouter l'attribut type dans la balise script.
<span id='compteur'></span>
<button id='decrement'>-</button>
<button id='increment'>+</button>
<script type='module' src='js/app.js' ></script>
Méthode : js/modules/compteur.js
export let nb = 0;
export let step = 1;
export const increment = () => {
nb += step;
return nb;
};
export const decrement = () => {
nb -= step;
return nb;
};
Le terme export permet de signaler les éléments que vous voulez exporter.
Méthode : js/app.js
import { increment, decrement, nb, step } from "./modules/compteur.js";
const compteur = document.querySelector("#compteur");
compteur.textContent = nb;
document
.querySelector("#increment")
.addEventListener("click", () => compteur.textContent = increment());
document
.querySelector("#decrement")
.addEventListener("click", () => compteur.textContent = decrement());
import : Le terme import permet d'indiquer les éléments à importer.
import { ... } : on indique entre accolades les éléments que l'on veut récupérer.
from "./modules/compteur.js" : l'url est relative au fichier d'import. Elle doit commencer par ./ ou ../
Les éléments importés peuvent être utilisés comme si vous les aviez créés dans votre fichier, mais, déclarés comme des constantes.
Tapez step = 2; après l'import et testez votre code.
Uncaught TypeError: Assignment to constant variable.
Après avoir suppriméstep= 2; relancez votre script. Tapez dans la console nb et appuyez sur entrée.
Vous n'avez pas accès aux variables de votre script. En effet, votre script est désormais un Module.
La console ne donne accès qu'aux propriétés du scope de l'objet window.
Ajoutez dans votre fichier, après l'import :
window.test = step;
Vous venez d'ajouter une propriété test à window. Tapez test dans votre console. Vous avez la valeur 1 qui correspond à la copie de la valeur de step de votre module.