Next.js
Ülevaade
Next.js on tootmiseks mõeldud React-raamistik. See pakub hübriidset staatilist ja serveris renderdamist, TypeScripti tuge, nutikat komplekteerimist, marsruutide ette laadimist ja palju muud nullkonfiguratsiooniga.
Kiirjuhend
Loo repositoorium mallist
Mine oma töölaual vahekaardile Tools & Deployment. Klõpsa nuppu "New Repository", vali rippmenüüst Next.js mall, sisesta repositooriumi nimi ja alamdomeen ning klõpsa "Create Repository".
Klooni oma repositoorium
git clone https://<git-server>/<username>/<repo-name>.git
cd <repo-name>
Paigalda sõltuvused
npm install
Käivita arendusserver
npm run dev
Ava brauseris http://localhost:4200.
Ehita ja saada üles
npm run build
git add .
git commit -m "Initial setup"
git push origin main
Kohalik arendus Dockeriga
Kui sul ei ole Node.js-i kohalikult paigaldatud, saad Next.js käskude käivitamiseks kasutada Dockerit.
Käskude käivitamine Dockeriga
# Käivita npm install
docker run --rm -v $(pwd):/app -w /app node:lts-alpine npm install
# Käivita arendusserver
docker run --rm -v $(pwd):/app -w /app -p 4200:4200 node:lts-alpine npm run dev
# Ehita tootmise jaoks
docker run --rm -v $(pwd):/app -w /app node:lts-alpine npm run build
Projekti struktuur
├── app/ # App Router (Next.js 13+)
│ ├── layout.js # Juurpaigutus
│ ├── page.js # Avaleht
│ ├── api/ # API marsruudid
│ └── [routes]/ # Dünaamilised marsruudid
├── public/ # Staatilised failid
├── components/ # React komponendid
├── styles/ # CSS-failid
├── next.config.js # Next.js seadistus
├── package.json # Sõltuvused
└── Dockerfile # Dockeri seadistus
Levinud ülesanded
Lehe loomine
Loo failid kataloogis app/:
// app/about/page.js
export default function AboutPage() {
return <h1>About Us</h1>;
}
API marsruudi loomine
// app/api/users/route.js
export async function GET() {
return Response.json({ users: [] });
}
export async function POST(request) {
const data = await request.json();
return Response.json({ created: data });
}
Server- ja kliendikomponendid
// Serverikomponent (vaikimisi) - töötab serveris
export default async function Page() {
const data = await fetch('https://api.example.com');
return <div>{data}</div>;
}
// Kliendikomponent - lisa direktiiv 'use client'
'use client';
import { useState } from 'react';
export default function Counter() {
const [count, setCount] = useState(0);
return <button onClick={() => setCount(count + 1)}>{count}</button>;
}
Kasulikud käsud
npm run dev
Käivita arendusserver Turbopackiga
npm run build
Loo tootmise build
npm start
Käivita tootmisserver
npm run lint
Käivita ESLint
Tõrkeotsing
Hüdratsiooni mittevastavuse vead
Lahendus: Veendu, et server ja klient renderdavad sama sisu. Interaktiivsete komponentide jaoks kasuta 'use client'.
useState ei tööta
Lahendus: Lisa oma faili algusesse 'use client'. Serverikomponendid ei saa kasutada hooke.
Ehitamine ebaõnnestub pärast juurutamist
Lahendus: Käivita enne push'i kohalikult npm run build, et vigu kontrollida.