Dit project is een oefening om te leren werken met JavaScript, DOM-manipulatie en event listeners.
We bouwen een interactieve “fruit- en groentekraam” waar producten met emoji’s worden weergegeven.
Bij het klikken op een product verandert de voorraad, en dit wordt direct in de browser bijgewerkt.
- Een lijst van producten wordt weergegeven in de browser.
- Elk product heeft:
- Een emoji als icoon.
- Een voorraad die wordt weergegeven.
- Wanneer je op een product klikt:
- De voorraad wordt aangepast (in dit voorbeeld verhoogd).
- De nieuwe waarde wordt direct op het scherm weergegeven.
Met deze opdracht leer je:
-
Werken met arrays en objecten
- Je definieert een array van objecten (
products) met eigenschappen zoalsemoji,name,price,stock.
- Je definieert een array van objecten (
-
DOM-manipulatie
- Dynamisch elementen maken met
document.createElement. - Tekst en HTML toevoegen met
.textContenten.innerHTML. - Elementen toevoegen aan de pagina met
.appendChild.
- Dynamisch elementen maken met
-
Event handling
- Het gebruik van
.addEventListenerom te reageren op gebruikersacties (zoals klikken).
- Het gebruik van
-
Data en UI koppelen
- Je leert hoe je de data in JavaScript (bijvoorbeeld
product.stock) koppelt aan de interface (de voorraad die getoond wordt). - Bij wijzigingen in de data wordt de UI meteen bijgewerkt.
- Je leert hoe je de data in JavaScript (bijvoorbeeld
-
Gebruik van template literals
- Dynamisch HTML en tekst samenstellen met backticks (
`... ${value} ...`).
- Dynamisch HTML en tekst samenstellen met backticks (
Je kunt dit project op twee manieren clonen: via GitHub Desktop of via de command line.
- Open GitHub Desktop.
- Klik op File > Clone Repository.
- Voer de URL van dit project in, bijvoorbeeld:
https://github.com/curio-lesmateriaal/groente-fruitkraam.git - Kies een lokale map waar je het project wilt opslaan.
- Klik op Clone.
- Open een terminal (PowerShell, CMD of Git Bash).
- Navigeer naar de map waar je het project wilt clonen:
cd path/naar/map - Voer het volgende commando uit:
git clone https://github.com/curio-lesmateriaal/groente-fruitkraam.git
- Ga daarna de projectmap in:
cd jouw-project
- Toon de titel van het product boven de afbeelding Toon de stukprijs van een product ergens naar wens
- Voorraad per product kan nooit meer dan 100 zijn
- Toon je budget ergens op het scherm
- Bij ieder product wat je inkoopt gaat dit van je budget af
- Een product kan niet ingekocht worden als je niet genoeg budget hebt.
- Je budget verhoogt zich automatisch met 1.00 per 3 seconden.
- Styling uitbreiden met Tailwind CSS of eigen CSS.
- Products automatisch laden vanuit een JSON-bestand.