Apžvalga

React yra JavaScript biblioteka vartotojo sąsajoms kurti. Šiame šablone naudojama Create React App (CRA), kuri suteikia patogų sąrankos variantą React mokymuisi ir tvirtą pagrindą vieno puslapio aplikacijoms.

Prieš pradėdami
Įsitikinkite, kad jūsų valdymo skydelis atidarytas - jums reikės ten rodomų Git prisijungimo duomenų. Šiame šablone yra React 18, Tailwind CSS, Redux Toolkit ir React Router.

Greitas startas

1

Sukurkite repozitoriją iš šablono

Valdymo skydelyje pereikite į skirtuką Tools & Deployment. Spauskite mygtuką "New Repository", išskleidžiamame sąraše pasirinkite React šabloną, įveskite repozitorijos pavadinimą ir subdomeną, tada spauskite "Create Repository".

2

Klonuokite savo repozitoriją

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

Įdiekite priklausomybes

npm install
4

Paleiskite kūrimo serverį

npm start

Naršyklėje atidarykite http://localhost:3000.

5

Sukompiliuokite ir įkelkite

npm run build
git add .
git commit -m "Initial setup"
git push origin main
Kiekvienas push į Git automatiškai įdiegia jūsų aplikaciją. Patikrinkite Modulio darbo URL valdymo skydelyje, kad pamatytumėte savo gyvą svetainę.

Vietinis kūrimas su Docker

Jei vietoje neturite įdiegto Node.js, galite naudoti Docker React komandoms vykdyti.

Kas yra Docker?
Docker sukuria izoliuotus „konteinerius" su visa reikalinga programine įranga (Node.js, npm) jos neįdiegiant į jūsų kompiuterį. Įsivaizduokite tai kaip lengvą virtualią mašiną.

Reikalavimai

Įdiekite Docker Desktop savo operacinei sistemai (Windows, Mac arba Linux).

Komandų vykdymas su Docker

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

# Paleisti kūrimo serverį (pasiekiamas adresu localhost:3000)
docker run --rm -v $(pwd):/app -w /app -p 3000:3000 node:18 npm start

# Sukompiliuoti produkcijai
docker run --rm -v $(pwd):/app -w /app node:18 npm run build
Pastaba
Docker yra neprivalomas vietiniam kūrimui. NStrim platforma diegimą tvarko automatiškai - Docker reikia tik tuomet, jei norite vykdyti komandas vietoje neįdiegę Node.js.

Projekto struktūra

Kur yra failai:

├── src/
│   ├── components/           # React komponentai
│   ├── hooks/                # Pasirinktiniai React hooks
│   ├── pages/                # Puslapio komponentai
│   ├── services/             # API paslaugos
│   ├── store/                # Redux saugyklos konfigūracija
│   ├── App.js                # Šaknies komponentas
│   ├── App.css               # Aplikacijos stiliai
│   └── index.js              # Aplikacijos įėjimo taškas
├── public/                   # Statiniai failai
├── package.json              # Priklausomybės ir skriptai
├── tailwind.config.js        # Tailwind CSS konfigūracija
└── Dockerfile                # Docker kompiliavimo konfigūracija
        

Įprastos užduotys

Komponento kūrimas

Kurkite .js failus src/components/ kataloge:

// 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 naudojimas

Įprasti hooks būsenai ir šalutiniams efektams:

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 naudojimas

React Router yra iš anksto sukonfigūruotas navigacijai:

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 naudojimas

Tailwind CSS yra iš anksto sukonfigūruotas. Naudokite klases tiesiogiai savo JSX:

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

Naudingos komandos

npm start Paleisti kūrimo serverį (prievadas 3000)
npm run build Sukurti optimizuotą produkcijos versiją
npm test Vykdyti testų rinkinį
npm run eject Atjungti nuo CRA (negrįžtamas veiksmas)

Trikčių šalinimas

npm install nepavyksta su leidimo klaidomis

Priežastis: Leidimų problemos su npm talpykla arba node_modules.

Sprendimas: Ištrinkite node_modules aplanką ir package-lock.json, tada vėl paleiskite npm install.

Prievadas 3000 jau naudojamas

Priežastis: Kitas procesas naudoja prievadą 3000.

Sprendimas: Nustatykite kitą prievadą: PORT=3001 npm start arba sustabdykite kitą procesą.

Komponentas neperpiešia

Priežastis: Būsenos mutavimas vietoj naujos būsenos kūrimo.

Sprendimas: Visada kurkite naujus objektus / masyvus, kai atnaujinate būseną. Naudokite spread operatorių: setItems([...items, newItem])

Pakeitimai neatsispindi naršyklėje

Priežastis: Naršyklės talpykla arba neveikia automatinis perkrovimas.

Sprendimas: Atlikite priverstinį atnaujinimą (Ctrl+Shift+R arba Cmd+Shift+R) arba paleiskite kūrimo serverį iš naujo.

Kompiliavimas nepavyksta po diegimo

Priežastis: Kompiliavimo klaidos arba trūkstamos priklausomybės.

Sprendimas: Pirmiausia vietoje paleiskite npm run build, kad patikrintumėte klaidas prieš įkeldami.

Diegimo eiga

Kiekvieną kartą, kai įkeliate kodą į Git, jūsų aplikacija automatiškai sukompiliuojama ir įdiegiama:

Kodo pakeitimas git push npm run build Diegti statinius failus Gyvai!

Jūsų įdiegtos aplikacijos URL atitinka šį formatą:

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

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

Daugiau informacijos rasite oficialioje React dokumentacijoje.