App Routerin tiedostokäytännöt
Ymmärtäkää app/-hakemisto sekä page.tsx-, layout.tsx-, loading.tsx- ja error.tsx-tiedostot.
App Routerin tiedostokäytännöt on ilmainen React Academy-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu React Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. React Academy-kurssilla on yhteensä 4 oppituntia.
app/‑hakemisto
Next.jsin App Router käyttää app/-hakemistoa. Kansiot määrittävät URL-osoitteen osat, ja kansioiden erityistiedostot määrittävät kunkin osan toiminnan.
page.tsx — reitin käyttöliittymä
page.tsx vie ulos React-komponentin, joka renderöidään tietyn URL-osoitteen osan kohdalla. Ilman page.tsx-tiedostoa reitti ei ole julkisesti käytettävissä.
// app/dashboard/page.tsx
export default function DashboardPage() {
return <h1>Dashboard</h1>;
}
// → accessible at /dashboardlayout.tsx — Pysyvät rungot
layout.tsx ympäröi alireitit. Se säilyy navigointien välillä — sen tila ei nollaudu alireitin vaihtuessa.
// app/layout.tsx (root layout — required)
export default function RootLayout({ children }: { children: React.ReactNode }) {
return (
<html lang="en">
<body>
<Header />
{children}
<Footer />
</body>
</html>
);
}loading.tsx — Välitön latausnäkymä
loading.tsx renderöidään heti, kun sivun asynkroniset tiedot latautuvat. Se ympäröi sivun automaattisella Suspense-rajalla.
// app/dashboard/loading.tsx
export default function Loading() {
return <Skeleton />;
}
// Shown while dashboard/page.tsx is fetchingerror.tsx — Virherajat
error.tsx on segmentin React-virheraja. Se saa virheen ja reset-funktion uudelleenyritystä varten.
'use client';
export default function Error({ error, reset }: { error: Error; reset: () => void }) {
return (
<div>
<p>Something went wrong: {error.message}</p>
<button onClick={reset}>Try again</button>
</div>
);
}not-found.tsx — 404-näkymä
not-found.tsx renderöidään, kun palvelinkomponentista kutsutaan notFound()-funktiota tai kun mikään reitti ei täsmää.
// app/not-found.tsx
export default function NotFound() {
return (
<div>
<h2>404 — Page not found</h2>
<Link href="/">Go home</Link>
</div>
);
}template.tsx — Uudelleen alustettavat layoutit
template.tsx toimii kuten layout.tsx, mutta luo uuden instanssin jokaisella navigoinnilla — tila nollautuu ja efektit suoritetaan uudelleen. Käyttäkää sitä animaatioihin tai analytiikkaan.
// app/shop/template.tsx
export default function ShopTemplate({ children }: { children: React.ReactNode }) {
return <div className="shop-fade-in">{children}</div>;
}route.ts — API-reitit
route.ts (ei route.tsx) vie HTTP-metodien käsittelijät (GET, POST jne.), joiden avulla app/-hakemistoon luodaan API-päätepisteitä.
// app/api/users/route.ts
export async function GET() {
const users = await getUsers();
return Response.json(users);
}
export async function POST(request: Request) {
const body = await request.json();
const user = await createUser(body);
return Response.json(user, { status: 201 });
}middleware.ts — Edge-väliohjelmisto
Projektin juuressa oleva middleware.ts suoritetaan reunalla ennen jokaista täsmäävää pyyntöä — sitä käytetään todennustarkistuksiin, uudelleenohjauksiin ja otsakkeiden uudelleenkirjoittamiseen.
// middleware.ts
import { NextResponse } from 'next/server';
import type { NextRequest } from 'next/server';
export function middleware(request: NextRequest) {
const token = request.cookies.get('token');
if (!token) return NextResponse.redirect(new URL('/login', request.url));
return NextResponse.next();
}
export const config = { matcher: ['/dashboard/:path*'] };Tiedostojen sijoittelu
Voitte sijoittaa muut kuin reittitiedostot (komponentit, apufunktiot ja testit) samaan app/-hakemistoon reittitiedostojen kanssa. Vain erityisiä nimeämiskäytäntöjä noudattavat tiedostot (page, layout jne.) käsitellään reittisegmentteinä.
Sisäkkäiset layoutit
Jokaisella kansiolla voi olla oma layout.tsx-tiedostonsa. Sisäkkäinen layout ympäröi vain oman segmenttinsä lapset ja yhdistyy sen yläpuolella olevaan ylätason layoutiin.
// app/dashboard/layout.tsx
export default function DashboardLayout({ children }) {
return (
<div className="dashboard">
<Sidebar />
<main>{children}</main>
</div>
);
}Pikatarkistus
Mikä App Routerin tiedosto tarjoaa automaattisen Suspense-varanäkymän sivun asynkronisten tietojen latautuessa?
Kertaus
App Router käyttää erityistiedostoja: page.tsx (reittinäkymä), layout.tsx (pysyvä runko), loading.tsx (Suspense-varanäkymä), error.tsx (virheraja), not-found.tsx (404), route.ts (API) ja middleware.ts (reunalla suoritettava logiikka).
Opi React tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 88
- Oppitunnit
- 324
Usein kysytyt kysymykset
Onko oppitunti ”App Routerin tiedostokäytännöt” ilmainen?
Kyllä – oppitunnin ”App Routerin tiedostokäytännöt” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko React Academy-kurssin, päivitä CoddyKit PROhon. React Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”App Routerin tiedostokäytännöt”?
Ymmärtäkää app/-hakemisto sekä page.tsx-, layout.tsx-, loading.tsx- ja error.tsx-tiedostot. Harjoittelet React Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni React Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin React Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.
Kuinka kauan ”App Routerin tiedostokäytännöt”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä React Academy-oppitunnilla?
Kyllä. Jokainen React Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- App Routerin tiedostokäytännöt
- Palvelin- ja client-komponentit Next.js:ssä
- Dynaamiset reitit ja reittiryhmät
- Metadata API ja SEO App Routerissa