Overzicht

React is een JavaScript-bibliotheek voor het bouwen van gebruikersinterfaces. Dit sjabloon gebruikt Create React App (CRA), wat een comfortabele opstelling biedt om React te leren en een solide basis voor single-page applicaties.

Voordat je begint
Zorg ervoor dat je dashboard geopend is - je hebt de daar getoonde Git-inloggegevens nodig. Dit sjabloon bevat React 18, Tailwind CSS, Redux Toolkit en React Router.

Snelstart

1

Repository aanmaken vanuit sjabloon

Ga in je dashboard naar het tabblad Tools & Deployment. Klik op de knop "New Repository", selecteer het React-sjabloon uit het dropdownmenu, voer een repository-naam en subdomein in en klik vervolgens op "Create Repository".

2

Je repository klonen

git clone https://<git-server>/<username>/<repo-name>.git
cd <repo-name>
3

Afhankelijkheden installeren

npm install
4

Ontwikkelingsserver starten

npm start

Open http://localhost:3000 in je browser.

5

Bouwen & pushen

npm run build
git add .
git commit -m "Initial setup"
git push origin main
Elke push naar Git implementeert automatisch je applicatie. Bekijk je Module Work URL op het dashboard om je live site te zien.

Lokale ontwikkeling met Docker

Als je geen Node.js lokaal hebt geïnstalleerd, kun je Docker gebruiken om React-commando's uit te voeren.

Wat is Docker?
Docker maakt geïsoleerde "containers" met alle software die je nodig hebt (Node.js, npm) zonder ze op je computer te installeren. Zie het als een lichtgewicht virtuele machine.

Vereisten

Installeer Docker Desktop voor jouw besturingssysteem (Windows, Mac of Linux).

Commando's uitvoeren met Docker

# Run npm install
docker run --rm -v $(pwd):/app -w /app node:18 npm install

# Run development server (accessible at localhost:3000)
docker run --rm -v $(pwd):/app -w /app -p 3000:3000 node:18 npm start

# Build for production
docker run --rm -v $(pwd):/app -w /app node:18 npm run build
Opmerking
Docker is optioneel voor lokale ontwikkeling. Het NStrim-platform handelt de implementatie automatisch af - je hebt Docker alleen nodig als je commando's lokaal wilt uitvoeren zonder Node.js geïnstalleerd te hebben.

Projectstructuur

Begrijpen waar bestanden zich bevinden:

├── src/
│   ├── components/           # React-componenten
│   ├── hooks/                # Aangepaste React-hooks
│   ├── pages/                # Paginacomponenten
│   ├── services/             # API-services
│   ├── store/                # Redux store-configuratie
│   ├── App.js                # Hoofdcomponent
│   ├── App.css               # App-stijlen
│   └── index.js              # Applicatie-startpunt
├── public/                   # Statische bestanden
├── package.json              # Afhankelijkheden en scripts
├── tailwind.config.js        # Tailwind CSS-configuratie
└── Dockerfile                # Docker build-configuratie
        

Veelvoorkomende taken

Een component aanmaken

Maak .js-bestanden in src/components/:

// src/components/Button.js
export default function Button({ label, onClick }) {
  return (
    <button
      className="bg-blue-500 text-white px-4 py-2 rounded"
      onClick={onClick}
    >
      {label}
    </button>
  );
}

React-hooks gebruiken

Veelgebruikte hooks voor state en side-effects:

import { useState, useEffect } from 'react';

function Counter() {
  const [count, setCount] = useState(0);

  useEffect(() => {
    document.title = `Count: ${count}`;
  }, [count]);

  return (
    <button onClick={() => setCount(count + 1)}>
      Count: {count}
    </button>
  );
}

React Router gebruiken

React Router is vooraf geconfigureerd voor navigatie:

import { BrowserRouter, Routes, Route, Link } from 'react-router-dom';
import Home from './pages/Home';
import About from './pages/About';

function App() {
  return (
    <BrowserRouter>
      <nav>
        <Link to="/">Home</Link>
        <Link to="/about">About</Link>
      </nav>
      <Routes>
        <Route path="/" element={<Home />} />
        <Route path="/about" element={<About />} />
      </Routes>
    </BrowserRouter>
  );
}

Tailwind CSS gebruiken

Tailwind CSS is vooraf geconfigureerd. Gebruik klassen direct in je JSX:

<div className="bg-blue-500 text-white p-4 rounded-lg">
  Hello Tailwind!
</div>

Handige commando's

npm start Ontwikkelingsserver starten (poort 3000)
npm run build Geoptimaliseerde productiebuild aanmaken
npm test Testsuite uitvoeren
npm run eject Eject uit CRA (eenrichtingsoperatie)

Probleemoplossing

npm install fails with permission errors

Oorzaak: Permissieproblemen met de npm-cache of node_modules.

Oplossing: Verwijder de map node_modules en package-lock.json, en voer dan npm install opnieuw uit.

Port 3000 already in use

Oorzaak: Een ander proces gebruikt poort 3000.

Oplossing: Stel een andere poort in: PORT=3001 npm start of stop het andere proces.

Component not re-rendering

Oorzaak: State-mutatie in plaats van een nieuwe state te creëren.

Oplossing: Maak altijd nieuwe objecten/arrays aan bij het bijwerken van state. Gebruik de spread-operator: setItems([...items, newItem])

Changes not reflecting in browser

Oorzaak: Browser-cache of hot reload werkt niet.

Oplossing: Hard refresh (Ctrl+Shift+R of Cmd+Shift+R) of herstart de dev-server.

Build fails after deployment

Oorzaak: Build-fouten of ontbrekende afhankelijkheden.

Oplossing: Voer eerst lokaal npm run build uit om op fouten te controleren voordat je pusht.

Implementatie-workflow

Elke keer dat je code naar Git pusht, wordt je applicatie automatisch gebouwd en geïmplementeerd:

Codewijziging git push npm run build Statische bestanden implementeren Live!

De URL van je geïmplementeerde applicatie volgt dit formaat:

https://<your-subdomain>-<repo-name>.<session-domain>

Voorbeeld: https://student01-module-a.demo.nstrim.app

Voor meer informatie kun je de officiële React-documentatie raadplegen.