Przegląd

React to biblioteka JavaScript do budowania interfejsów użytkownika. Ten szablon wykorzystuje Create React App (CRA), który zapewnia wygodną konfigurację do nauki Reacta i solidną podstawę dla aplikacji jednostronicowych.

Zanim zaczniesz
Upewnij się, że masz otwarty pulpit – będą ci potrzebne wyświetlone tam dane logowania do Git. Ten szablon zawiera React 18, Tailwind CSS, Redux Toolkit oraz React Router.

Pierwsze kroki

1

Utwórz repozytorium z szablonu

Na pulpicie przejdź do zakładki Tools & Deployment. Kliknij przycisk "New Repository", wybierz szablon React z listy rozwijanej, wpisz nazwę repozytorium i subdomenę, a następnie kliknij "Create Repository".

2

Sklonuj repozytorium

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

Zainstaluj zależności

npm install
4

Uruchom serwer deweloperski

npm start

Otwórz http://localhost:3000 w przeglądarce.

5

Zbuduj i wypchnij zmiany

npm run build
git add .
git commit -m "Initial setup"
git push origin main
Każde wypchnięcie do Git automatycznie wdraża twoją aplikację. Sprawdź adres Module Work URL na pulpicie, aby zobaczyć działającą stronę.

Lokalny rozwój z Dockerem

Jeśli nie masz lokalnie zainstalowanego Node.js, możesz użyć Dockera do uruchamiania komend Reacta.

Czym jest Docker?
Docker tworzy izolowane "kontenery" zawierające całe potrzebne oprogramowanie (Node.js, npm) bez instalowania go na twoim komputerze. Można to porównać do lekkiej maszyny wirtualnej.

Wymagania wstępne

Zainstaluj Docker Desktop dla swojego systemu operacyjnego (Windows, Mac lub Linux).

Uruchamianie komend z Dockerem

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

# Uruchom serwer deweloperski (dostępny pod localhost:3000)
docker run --rm -v $(pwd):/app -w /app -p 3000:3000 node:18 npm start

# Zbuduj wersję produkcyjną
docker run --rm -v $(pwd):/app -w /app node:18 npm run build
Uwaga
Docker jest opcjonalny dla lokalnego rozwoju. Platforma NStrim obsługuje wdrożenie automatycznie – Docker jest potrzebny tylko, jeśli chcesz uruchamiać komendy lokalnie bez zainstalowanego Node.js.

Struktura projektu

Gdzie znajdują się pliki:

├── src/
│   ├── components/           # Komponenty React
│   ├── hooks/                # Własne hooki React
│   ├── pages/                # Komponenty stron
│   ├── services/             # Serwisy API
│   ├── store/                # Konfiguracja store Redux
│   ├── App.js                # Komponent główny
│   ├── App.css               # Style aplikacji
│   └── index.js              # Punkt wejścia aplikacji
├── public/                   # Pliki statyczne
├── package.json              # Zależności i skrypty
├── tailwind.config.js        # Konfiguracja Tailwind CSS
└── Dockerfile                # Konfiguracja buildu Docker
        

Typowe zadania

Tworzenie komponentu

Twórz pliki .js w katalogu 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>
  );
}

Korzystanie z hooków React

Najczęściej używane hooki do stanu i efektów ubocznych:

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

Korzystanie z React Router

React Router jest wstępnie skonfigurowany do nawigacji:

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

Korzystanie z Tailwind CSS

Tailwind CSS jest wstępnie skonfigurowany. Używaj klas bezpośrednio w JSX:

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

Przydatne komendy

npm start Uruchom serwer deweloperski (port 3000)
npm run build Utwórz zoptymalizowany build produkcyjny
npm test Uruchom zestaw testów
npm run eject Wyjdź z CRA (operacja jednokierunkowa)

Rozwiązywanie problemów

npm install kończy się błędami uprawnień

Przyczyna: Problemy z uprawnieniami do cache npm lub node_modules.

Rozwiązanie: Usuń folder node_modules i plik package-lock.json, a następnie ponownie uruchom npm install.

Port 3000 jest już używany

Przyczyna: Inny proces używa portu 3000.

Rozwiązanie: Ustaw inny port: PORT=3001 npm start lub zatrzymaj inny proces.

Komponent nie odświeża się

Przyczyna: Mutacja stanu zamiast tworzenia nowego stanu.

Rozwiązanie: Zawsze twórz nowe obiekty/tablice przy aktualizacji stanu. Używaj operatora spread: setItems([...items, newItem])

Zmiany nie pojawiają się w przeglądarce

Przyczyna: Cache przeglądarki lub niedziałający hot reload.

Rozwiązanie: Odśwież z pominięciem cache (Ctrl+Shift+R lub Cmd+Shift+R) albo zrestartuj serwer dev.

Build kończy się błędem po wdrożeniu

Przyczyna: Błędy buildu lub brakujące zależności.

Rozwiązanie: Najpierw uruchom npm run build lokalnie, aby sprawdzić błędy przed wypchnięciem zmian.

Proces wdrażania

Za każdym razem, gdy wypychasz kod do Git, twoja aplikacja jest automatycznie budowana i wdrażana:

Zmiana kodu git push npm run build Wdrożenie plików statycznych Live!

Adres URL twojej wdrożonej aplikacji ma następujący format:

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

Przykład: https://student01-module-a.demo.nstrim.app

Aby uzyskać więcej informacji, odwiedź oficjalną Dokumentację Reacta.