Aperçu

React est une bibliothèque JavaScript pour créer des interfaces utilisateur. Ce modèle utilise Create React App (CRA), qui fournit une configuration confortable pour apprendre React et une base solide pour les applications à page unique.

Avant de commencer
Assurez-vous que votre tableau de bord est ouvert - vous aurez besoin des identifiants Git qui y sont affichés. Ce modèle inclut React 18, Tailwind CSS, Redux Toolkit et React Router.

Démarrage rapide

1

Créer un dépôt à partir du modèle

Sur votre tableau de bord, allez dans l'onglet Tools & Deployment. Cliquez sur le bouton "New Repository", sélectionnez le modèle React dans le menu déroulant, saisissez un nom de dépôt et un sous-domaine, puis cliquez sur "Create Repository".

2

Cloner votre dépôt

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

Installer les dépendances

npm install
4

Démarrer le serveur de développement

npm start

Ouvrez http://localhost:3000 dans votre navigateur.

5

Construire et pousser

npm run build
git add .
git commit -m "Initial setup"
git push origin main
Chaque push vers Git déploie automatiquement votre application. Consultez l'URL de travail du module sur votre tableau de bord pour voir votre site en ligne.

Développement local avec Docker

Si vous n'avez pas Node.js installé localement, vous pouvez utiliser Docker pour exécuter les commandes React.

Qu'est-ce que Docker ?
Docker crée des "conteneurs" isolés contenant tous les logiciels nécessaires (Node.js, npm) sans les installer sur votre ordinateur. Considérez-le comme une machine virtuelle légère.

Prérequis

Installez Docker Desktop pour votre système d'exploitation (Windows, Mac ou Linux).

Exécuter des commandes avec Docker

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

# Exécuter le serveur de développement (accessible sur localhost:3000)
docker run --rm -v $(pwd):/app -w /app -p 3000:3000 node:18 npm start

# Construire pour la production
docker run --rm -v $(pwd):/app -w /app node:18 npm run build
Remarque
Docker est facultatif pour le développement local. La plateforme NStrim gère le déploiement automatiquement - vous n'avez besoin de Docker que si vous souhaitez exécuter des commandes localement sans avoir Node.js installé.

Structure du projet

Comprendre où sont situés les fichiers :

├── src/
│   ├── components/           # Composants React
│   ├── hooks/                # Hooks React personnalisés
│   ├── pages/                # Composants de page
│   ├── services/             # Services API
│   ├── store/                # Configuration du store Redux
│   ├── App.js                # Composant racine
│   ├── App.css               # Styles de l'app
│   └── index.js              # Point d'entrée de l'application
├── public/                   # Fichiers statiques
├── package.json              # Dépendances et scripts
├── tailwind.config.js        # Configuration Tailwind CSS
└── Dockerfile                # Configuration de build Docker
        

Tâches courantes

Créer un composant

Créez des fichiers .js dans 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>
  );
}

Utiliser les hooks React

Hooks courants pour l'état et les effets de bord :

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>
  );
}

Utiliser React Router

React Router est préconfiguré pour la navigation :

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>
  );
}

Utiliser Tailwind CSS

Tailwind CSS est préconfiguré. Utilisez les classes directement dans votre JSX :

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

Commandes utiles

npm start Démarrer le serveur de développement (port 3000)
npm run build Créer un build de production optimisé
npm test Exécuter la suite de tests
npm run eject Éjecter de CRA (opération à sens unique)

Dépannage

npm install échoue avec des erreurs de permission

Cause : Problèmes de permission avec le cache npm ou node_modules.

Solution : Supprimez le dossier node_modules et le fichier package-lock.json, puis relancez npm install.

Le port 3000 est déjà utilisé

Cause : Un autre processus utilise le port 3000.

Solution : Définissez un port différent : PORT=3001 npm start ou arrêtez l'autre processus.

Le composant ne se restitue pas

Cause : Mutation d'état au lieu de créer un nouvel état.

Solution : Créez toujours de nouveaux objets/tableaux lors de la mise à jour de l'état. Utilisez l'opérateur de propagation : setItems([...items, newItem])

Les modifications ne sont pas répercutées dans le navigateur

Cause : Cache du navigateur ou rechargement à chaud non fonctionnel.

Solution : Rechargement forcé (Ctrl+Shift+R ou Cmd+Shift+R) ou redémarrez le serveur de développement.

Le build échoue après le déploiement

Cause : Erreurs de build ou dépendances manquantes.

Solution : Exécutez d'abord npm run build localement pour vérifier les erreurs avant de pousser.

Flux de déploiement

Chaque fois que vous poussez du code vers Git, votre application est automatiquement construite et déployée :

Modification du code git push npm run build Déploiement des fichiers statiques En ligne !

L'URL de votre application déployée suit ce format :

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

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

Pour plus d'informations, consultez la documentation officielle React.