Skip to main content

REACT | Basis

  • React Basis

    Les 1 – Introductie React & InstallatieOntwikkelomgeving


    🎯 Leerdoelen

    Na deze les kun je:

    • uitleggen wat React is;
    • uitleggen waarom React veel wordt gebruikt;
    • het verschil beschrijven tussen Front-end en Back-end;
    • een Laravel Breeze React-project installeren;
    • de belangrijkste React-projectstructuurbestanden herkennen;
    • deje eerste React-componentpagina aanpassen;
    • eenje eersteproject GitHub-commitopslaan maken.in GitHub.

    📖 UitlegWat ga je bouwen?

    Welkom

    Tijdens bijdeze React!

    module werk je aan één project:

    🎮 Game Collection

    Je bouwt stap voor stap een moderne webapplicatie waarin gebruikers games kunnen bekijken, zoeken en beheren.

    In deiedere vorigeles modules hebbreid je gewerktdezelfde metapplicatie HTML,verder CSSuit.

    en

    Aan JavaScript.het Daarmeeeinde van deze module kun je mooieonder websitesandere:

    maken,
      maar
    • 🎮 zodraGames eenweergeven
    • project
    • 🔍 groterGames wordt,zoeken
    • merk
    • ❤️ jeFavorieten datmarkeren
    • de
    • 📄 codeDetailpagina's steedsmaken
    • moeilijker
    • 🧩 teWerken onderhoudenmet is.componenten
    • ⚡ Dynamische React-applicaties bouwen

    [Afbeelding eindresultaat Game Collection]


    📖 Waarom React?

    Stel je voor dat je eende websiteGame Collection maakt waaropmet honderdenalleen gamesHTML.

    worden weergegeven. Op

    Voor iedere paginagame ziezou je steedsopnieuw dezelfdemoeten onderdelen terug:schrijven:

    • een logo;titel;
    • een menu;afbeelding;
    • een zoekbalk;platform;
    • kaarten met games;knop;
    • knoppen;
    • een footer.beschrijving.

    AlsHeb je al200 deze onderdelen steeds opnieuw moet programmeren, kost dat veel tijd.games?

    DaaromDan gebruikenschrijf veelje softwareontwikkelaarsdezelfde code 200 keer.

    Dat is natuurlijk niet handig.

    React lost dit probleem op.

    React maakt gebruik van Reactcomponenten.

    Een component maak je één keer.

    Daarna gebruik je hem zo vaak als je wilt.


    💡 Wat is React?

    React is een JavaScript-library waarmee je moderne gebruikersinterfaces bouwt.

    React is ontwikkeld door Meta (Facebook).

    Bekende websites die React gebruikenwordt zijngebruikt door onder andere:

    • Facebook
    • Instagram
    • Netflix
    • Discord
    • Airbnb

    React maaktis gebruiktegenwoordig één van componenten.de meest gebruikte technieken voor Front-end ontwikkeling.

    Een component is een klein herbruikbaar onderdeel van een website.

    Bijvoorbeeld:

    • Header
    • Footer
    • Zoekbalk
    • Knop
    • GameCard

    Deze bouw je één keer en gebruik je daarna overal opnieuw.

    [Afbeelding React Logo]logo]


    Front-end

    📖 versus Back-end

    Componenten

    Een moderne webapplicatieReact-applicatie bestaat meestaluit kleine bouwstenen.

    Deze noemen we componenten.

    Onze Game Collection zou er bijvoorbeeld zo uit twee delen.

    Front-endBack-end
    Alles wat de gebruiker zietAlles wat achter de schermen gebeurt
    ReactLater in deel 2
    HTML/CSS/JavaScriptDatabase
    Draait in de browserDraait op een server

    Tijdens deze lessenreeks richten we ons volledig op de Front-end.

    De Back-end behandelen we pas in de volgende React-module.

    [Afbeelding Front-end vs Back-end]


    🎮 Wat gaan we bouwen?

    Tijdens deze module bouwen we één grote applicatie.

    Game Collection

    Iedere les voegen we nieuwe functionaliteit toe.

    Aan het einde van deze module kun je onder andere:

    • Games tonen
    • Games zoeken
    • Games filteren
    • Favorieten bewaren
    • Meerdere pagina's maken
    • Werken met JSON
    • Componenten bouwen

    In de vervolgreeks koppelen we deze applicatie aan een echte Back-end.

    [Afbeelding Eindresultaat Game Collection]


    💡 Waarom gebruiken we tóch Laravel Breeze React?

    Je zou React ook los kunnen installeren.

    Wij kiezen daar bewust niet voor.

    We maken direct een Laravel Breeze React-project.

    Niet omdat we nu Laravel gaan leren.

    Maar omdat we in de volgende module zonder opnieuw te beginnen verder kunnen werken.

    Tijdens deze module hoef je niets van Laravel te begrijpen.

    Je werkt uitsluitend in de React-bestanden.


    ⚠️ Let op

    Tijdens deze module werk je vrijwel alleen in:zien.

    resources/App
    
    ├── Header
    
    ├── SearchBar
    
    ├── GameList
    
    │ ├── GameCard
    
    │ ├── GameCard
    
    │ ├── GameCard
    
    │ └── js
        ├── Components
        ├── Pages
        ├── LayoutsGameCard
    
    └── app.jsxFooter

    AlleIedere andereGameCard bestandenwordt latenslechts één keer gemaakt.

    React hergebruikt deze component daarna automatisch.

    Dat scheelt enorm veel programmeerwerk.

    [Afbeelding componentenboom]


    📖 Front-end versus Back-end

    Een webapplicatie bestaat meestal uit twee delen.

    Front-endBack-end
    Alles wat de gebruiker zietVerwerking achter de schermen
    HTMLDatabase
    CSSAPI
    JavaScriptServer
    Reactbehandelen we voorlopigin metdeel rust.2

    Tijdens deze module richten we ons uitsluitend op de Front-end.

    In de vervolgreeks koppelen we React aan een Back-end.

    [Afbeelding Front-end vs Back-end]


    💡 Wist je dat?

    React gebruikt een techniek die Virtual DOM heet.

    Hierdoor wordt niet de hele pagina opnieuw opgebouwd.

    Alleen het onderdeel dat verandert wordt opnieuw weergegeven.

    Daardoor voelt een React-applicatie snel en soepel aan.


    🛠️ Opdracht 1 – Ontwikkelomgeving installeren

    Tijdens deze module gebruiken we een Laravel Breeze React-project.

    Waarom?

    Omdat we in de volgende module zonder opnieuw te beginnen verder kunnen werken.

    Let op: Tijdens deze module hoef je niets van Laravel te kennen. We gebruiken Laravel alleen als basis waarop React draait.

    Stap 1 – Nieuw Laravel-project maken

    Open een terminal.

    Maak een nieuw Laravel-project.

    laravel new game-collection


    Stap 2 – Open het project

    Open het project in Visual Studio Code.


    Stap 3 – React installeren

    VoerInstalleer het volgende commando uit:React.

    php artisan breeze:install react

    Kies steeds de standaardopties.


    Stap 4

    Installeer dealle packagespackages.

    npm install


    Stap 5

    Start de ontwikkelomgeving

    Open twee terminals.ontwikkelomgeving.

    Terminal 1

    php artisan serve

    Terminal 2

    npm run dev

    Open vervolgens:

    http://127.0.0.1:8000

    Als alles goed is zie je de standaard Laravel Breeze React-pagina.

    [Screenshot standaardLaravel Breeze React]React startpagina]


    🛠️ Opdracht 2 – Eerste React-pagina aanpassen

    Open:Open het bestand:

    resources/js/Pages/Welcome.jsx

    ZoekPas de titelpagina opaan de pagina.

    Vervangzodat deze door:er ongeveer zo uitziet.

    <h1>🎮 Game Collection</h1>

    Voeg daaronder toe:

    <ph2>Welkom bij mijn eerste React-applicatie.applicatie!</ph2>
    
    <p>Naam: Jouw naam</p>
    
    <p>Studentnummer: 123456</p>
    
    <p>Klas: SD4A</p>

    Sla het bestand op.

    DeControleer of de browser automatisch wordt automatischbijgewerkt.

    vernieuwd.

    [Screenshot gewijzigdeaangepaste Welcome-pagina]Welcome.jsx]


    💾 GitHub

    Nu jede applicatie werktwerkt, isslaan het tijd omwe de eerste werkende versie op te slaan.op.

    Open Source Control. in Visual Studio Code.

    Maak een commit met het bericht:

    Les 1 - React ontwikkelomgeving gereed

    Voer daarna een Sync uit naarzodat GitHub.je project ook op GitHub staat.

    Vanaf nu maak je na iedere werkende opdracht een commit.


    🤖 AI-opdracht

    VraagGebruik ChatGPT:ChatGPT.

    Geef de volgende prompt:

    Leg uit wat React is alsof je het uitlegt aan een eerstejaars mbo Software Developer.

    Vergelijk de uitleg van ChatGPT met deze les.

    SchrijfBeantwoord daarna inde maximaalvolgende vraag:

    Welke uitleg vond jij het duidelijkst en waarom?

    Maximaal 100 woorden op:.

    • Wat vond je duidelijk?
    • Wat zou jij anders uitleggen?

    🧠 Kennischeck

    Beantwoord de onderstaande vragen.

    1. Wat is React?
    2. Waarom gebruiken veel bedrijven React?
    3. Wat is een component?
    4. NoemWaarom driezijn voorbeeldencomponenten van componenten.handig?
    5. Wat is het verschil tussen Front-end en Back-end?
    6. Waarom werkengebruiken wij in een Laravel Breeze React-project?
    7. WelkeIn welke map gebruikga je tijdens deze module het meest?
    8. meeste
    9. Waarom maken we regelmatig GitHub-commits?werken?

    📤 Inleveren

    Lever de volgende onderdelen in:

    • 📷 Screenshot van de draaiende Gameapplicatie.
    • Collection.

    • 📷 Screenshot van de aangepaste Welcome.jsx.

    • 📷 Screenshot van jede eerste GitHub-commit.

    • 📄 PDF of TXT met de antwoorden op de kennischeck.

    • 📄 De uitwerking van de AI-opdracht.


      ⭐ Eindresultaat

      Na deze eerste les heb je:

      • ✅ kennisgemaakt met React;
      • ✅ een professionele React-ontwikkelomgeving geïnstalleerd;
      • ✅ je eerste React-component aangepast;
      • ✅ je project opgeslagen op GitHub.


Les 2 - JSX en Componenten

🎯 Leerdoelen

Na deze les:

  • Je begrijpt wat JSX is.
  • Je weet waarom React componenten gebruikt.
  • Je kunt zelf een component maken.
  • Je kunt gegevens doorgeven met props.

💡 Uitleg

Terugblik

In de vorige les heb je een React-project gemaakt en gestart.

Vandaag gaan we voor het eerst zelf React-code schrijven.

Je leert drie belangrijke onderdelen van React:

  • JSX
  • Componenten
  • Props

Deze onderdelen gebruik je straks in bijna iedere React-applicatie.


Wat is JSX?

Wanneer je React-code ziet, lijkt deze vaak op HTML.

Bijvoorbeeld:

function App() {
  return (
    <h1>Welkom bij React!</h1>
  );
}


Toch is dit geen HTML.

Dit noemen we JSX.

JSX staat voor:

JavaScript XML

Je kunt JSX zien als een combinatie van JavaScript en HTML.

React zet deze code automatisch om naar gewone HTML die de browser begrijpt.


Waarom gebruikt React JSX?

Met alleen JavaScript zou je een pagina als volgt moeten maken:

const titel = document.createElement("h1");
titel.textContent = "Welkom bij React!";
document.body.appendChild(titel);


Dat werkt prima, maar bij grote websites wordt deze code al snel onoverzichtelijk.

Met JSX schrijf je dezelfde pagina veel eenvoudiger:

<h1>Welkom bij React!</h1>


Dat leest veel prettiger.


JSX lijkt op HTML

Veel HTML-tags werken precies hetzelfde.

Bijvoorbeeld:

<h1>Welkom</h1>

<p>Dit is een paragraaf.</p>

<ul>
    <li>React</li>
    <li>JavaScript</li>
</ul>


Je kunt dus bijna alle HTML gebruiken die je al kent.


Er zijn wel een paar verschillen

Verschil 1 – class wordt className

In HTML schrijf je:

<h1 class="title">


In React schrijf je:

<h1 className="title">


Waarom?

Omdat class een gereserveerd woord is in JavaScript.

Daarom gebruikt React className.

Dit is één van de meest gemaakte beginnersfouten.


Verschil 2 – JavaScript tussen accolades

In JSX kun je JavaScript gebruiken.

Dat doe je tussen:

{ }


Bijvoorbeeld:

function App() {

    const naam = "Lisa";

    return (
        <h1>Welkom {naam}</h1>
    );

}


De browser laat zien:

Welkom Lisa



Wat is een component?

Een React-app bestaat uit kleine onderdelen.

Deze onderdelen noemen we componenten.

Bijvoorbeeld een webshop.

Website

├── Header
├── Menu
├── Productlijst
├── Winkelwagen
└── Footer


Elk onderdeel heeft zijn eigen bestand.

Dat maakt een applicatie overzichtelijk.


Waarom componenten?

Stel dat je op iedere pagina hetzelfde menu gebruikt.

Zonder componenten moet je dezelfde code steeds opnieuw schrijven.

Met React maak je één Menu-component.

Daarna gebruik je deze overal.

<Menu />


Pas je het menu aan?

Dan verandert het automatisch op iedere pagina.


Je eerste component

Maak in de map src een nieuwe map.

src

components


Maak daarin een bestand:

Header.jsx


Plaats hierin de volgende code.

function Header() {

    return (
        <header>
            <h1>🎮 Game Collection</h1>
        </header>
    );

}

export default Header;


Deze component laat alleen een titel zien.


Een component gebruiken

Open nu App.jsx.

Importeer de component.

import Header from "./components/Header";


Gebruik de component vervolgens.

function App() {

    return (
        <>
            <Header />
        </>
    );

}

export default App;


De titel verschijnt nu in de browser.


Wat zijn props?

Een component is vaak herbruikbaar.

Daarom kunnen we gegevens meegeven.

Deze gegevens noemen we props.

Props kun je vergelijken met de parameters van een functie.


Zonder props

function Header() {

    return <h1>Game Collection</h1>;

}


Deze titel verandert nooit.


Met props

Pas Header.jsx aan.

function Header(props) {

    return (
        <h1>{props.title}</h1>
    );

}

export default Header;


Gebruik de component nu zo.

<Header title="🎮 Mijn Game Collection" />


Je kunt nu zelf bepalen welke titel wordt weergegeven.


Nog een voorbeeld

Je kunt meerdere props gebruiken.

function GameCard(props) {

    return (

        <>
            <h2>{props.title}</h2>
            <p>Platform: {props.platform}</p>
        </>

    );

}

export default GameCard;


Gebruik de component.

<GameCard
    title="Minecraft"
    platform="PC"
/>


De browser toont:

Minecraft

Platform: PC


Zo kun je dezelfde component steeds opnieuw gebruiken.


🛠️ Opdracht

Maak een map:

src/components


Maak daarin twee componenten.

Header.jsx

Footer.jsx


Gebruik beide componenten in App.jsx.


Opdracht 2

Maak een component:

GameCard.jsx


De component moet twee props gebruiken:

  • title
  • platform

Gebruik de component drie keer.

Bijvoorbeeld:

<GameCard
    title="Minecraft"
    platform="PC"
/>

<GameCard
    title="Mario Kart"
    platform="Nintendo Switch"
/>

<GameCard
    title="EA FC 26"
    platform="PlayStation 5"
/>



🤖 AI-opdracht

Vraag ChatGPT:

Leg uit wat een React component is alsof je het uitlegt aan een mbo-student.

Lees het antwoord.

Schrijf daarna zelf in maximaal 75 woorden uit wat volgens jou een component is.

Gebruik niet letterlijk de tekst van AI.


🧠 Reflectie

Beantwoord de vragen.

  1. Wat is JSX?
  2. Waarom gebruikt React componenten?
  3. Waarom schrijf je className in plaats van class?
  4. Wat zijn props?
  5. Wat is het voordeel van props ten opzichte van vaste tekst?

📤 Inleveren

Lever in:

  • Een screenshot van jouw React-app.
  • De bestanden:
    • Header.jsx
    • Footer.jsx
    • GameCard.jsx
    • App.jsx
  • De antwoorden op de reflectievragen (PDF of TXT).



Les 3 - useState

🎯 Leerdoelen

  • useState gebruiken
  • State wijzigen
  • Events afhandelen

💡 Uitleg

  • useState
  • onClick
  • Rendering

🛠️ Opdracht

Maak:

✔ Teller

Aantal games:
0

[ + ]

[ - ]


Daarna:

Favoriet aan/uit

❤️

🤍

🧠 Reflectie

Waarom gebruiken we state?


Les 4 - Lijsten met map()

🎯 Leerdoelen

  • Arrays tonen
  • map()
  • key

💡 Uitleg

Array →

[
{
title:"Minecraft"
}
]


→ GameCards

🛠️ Opdracht

Toon vijf games.

Extra:

voeg afbeelding toe.


Les 5 - Formulieren

🎯 Leerdoelen

  • Input
  • onChange
  • Zoeken

🛠️ Opdracht

Maak een zoekveld.

Zoeken:

Minecraft


Alleen passende games blijven zichtbaar.


Les 6 - JSON laden

🎯 Leerdoelen

  • JSON begrijpen
  • fetch()
  • useEffect()

💡 Uitleg

games.json


in

public/


Inladen met

fetch()


🛠️ Opdracht

Laad:

games.json


Toon alle games.


Les 7 - Details tonen

🎯 Leerdoelen

  • State combineren
  • Eén geselecteerde game tonen

🛠️ Opdracht

Klik op een game.

Rechts verschijnt

Naam

Platform

Genre

Beschrijving



Les 8 - Favorieten

🎯 Leerdoelen

  • Arrays aanpassen
  • State uitbreiden

🛠️ Opdracht

Maak

⭐ Favoriet

Filter:

Alle

Favorieten



Les 9 - AI Challenge

🎯 Leerdoelen

AI gebruiken.

🛠️ Opdracht

Laat ChatGPT een React-component maken.

Bijvoorbeeld:

Rating sterren

of

Dark Mode

of

Sorteerfunctie


Verbeter de code zelf.

Lever ook je prompt in.


Les 10 - Eindopdracht

Maak jouw eigen Game Collection.

Verplicht:

✅ Header

✅ Componenten

✅ JSON

✅ useState

✅ useEffect

✅ Zoekfunctie

✅ Favorieten

Keuze:

⭐ Dark Mode

⭐ Eigen styling

⭐ React Icons

⭐ Categorieën

⭐ Eigen JSON


Bonuslessen

Les 11

React Router

/

Games

/game/3



Les 12

Externe API

Bijvoorbeeld:

https://dummyjson.com/products


of

RAWG Game API


Studenten leren echte API's gebruiken.


AI-opdracht in iedere les

Net als bij SQL.

Bijvoorbeeld:

🤖 AI-opdracht

Vraag ChatGPT:

Leg uit wat useState doet alsof je het uitlegt aan een eerstejaars mbo-student.

Controleer daarna zelf of de uitleg klopt.