Dynaamiset reitit ja reittiryhmät
Luokaa [slug]-dynaamisia segmenttejä, (folder)-reittiryhmiä ja rinnakkaisia reittejä.
Dynaamiset reitit ja reittiryhmät on ilmainen React Academy-oppitunti CoddyKitissä. Tämä on oppitunti 3/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.
Dynaamiset segmentit
Luokaa dynaaminen segmentti ympäröimällä kansion nimi hakasulkeilla. Arvo on käytettävissä sivulle välitettävissä params-parametreissa.
// app/products/[id]/page.tsx
export default function ProductPage({ params }: { params: { id: string } }) {
return <h1>Product {params.id}</h1>;
}
// → /products/123 → params.id = '123'Tyypitetyt parametrit
URL-osoitteen parametrit ovat aina merkkijonoja. Muuntakaa ne erikseen numeerisia tunnisteita varten.
export default async function PostPage({ params }: { params: { slug: string } }) {
const post = await getPostBySlug(params.slug);
if (!post) notFound();
return <article>{post.content}</article>;
}Kaikki sisältävät segmentit
Käyttäkää [...slug]-merkintää vastaamaan mitä tahansa määrää polkusegmenttejä. Arvo on merkkijonojen taulukko.
// app/docs/[...path]/page.tsx
export default function DocsPage({ params }: { params: { path: string[] } }) {
// /docs/react/hooks → params.path = ['react', 'hooks']
return <DocViewer path={params.path} />;
}Valinnainen kaikki sisältävä segmentti
[[...slug]] täsmää myös juurisegmenttiin — se on hyödyllinen valinnaisissa polkuetuliitteissä.
// app/[[...lang]]/page.tsx
// Matches /, /en, /en/about, /fr/products/123
export default function Page({ params }: { params: { lang?: string[] } }) {
const lang = params.lang?.[0] ?? 'en';
return <div lang={lang}>...</div>;
}generateStaticParams
Viekää generateStaticParams(), jotta dynaamiset reitit esirenderöidään koontiaikana ja jokaiselle parametrien yhdistelmälle tuotetaan staattinen HTML.
export async function generateStaticParams() {
const posts = await getPosts();
return posts.map(p => ({ slug: p.slug }));
}
// → builds /blog/hello-world, /blog/react-tips etc. staticallyReittiryhmät — (kansio)
Luokaa reittiryhmä ympäröimällä kansion nimi sulkeilla. Se järjestää tiedostot lisäämättä URL-osoitteeseen segmenttiä.
// File structure:
// app/(marketing)/about/page.tsx → /about
// app/(marketing)/blog/page.tsx → /blog
// app/(app)/dashboard/page.tsx → /dashboard
// (marketing) and (app) don't appear in URLsJaetut layoutit reittiryhmissä
Jokaisella reittiryhmällä voi olla oma layout.tsx, jolloin eri osioille voidaan antaa erilaiset layoutit ilman URL-osoitteen sisäkkäisyyttä.
// app/(marketing)/layout.tsx — marketing shell
// app/(app)/layout.tsx — authenticated app shell
// Both groups share app/layout.tsx as the rootRinnakkaiset reitit — @slot
Luokaa slot lisäämällä kansion nimen eteen @. Slotit renderöidään samanaikaisesti ylätason layoutissa — niitä voi käyttää esimerkiksi modaalien, jaetun näytön tai välilehtien toteuttamiseen.
// app/@modal/login/page.tsx
// app/layout.tsx
export default function RootLayout({ children, modal }) {
return (
<div>
{children}
{modal} {/* renders @modal/login/page.tsx side by side */}
</div>
);
}Reittejä sieppaavat reitit — (..)
Siepatkaa reitti (..)-merkinnän avulla ja renderöikää se nykyisessä näkymässä. Voitte esimerkiksi avata valokuvan modaalissa uuden sivun navigoinnin sijaan.
// Soft navigation shows modal:
// app/@modal/(..)/photos/[id]/page.tsx
// Hard navigation shows full page:
// app/photos/[id]/page.tsxDynaamiset reittimetatiedot
Viekää dynaamisissa reiteissä asynkroninen generateMetadata-funktio, jotta voitte määrittää sivukohtaiset SEO-tunnisteet reittiparametrien perusteella.
export async function generateMetadata({ params }: { params: { id: string } }) {
const product = await getProduct(params.id);
return { title: product.name, description: product.description };
}Pikatarkistus
Mitä kansion nimen ympäröiminen sulkeilla tekee Next.js App Routerissa?
Kertaus
[id] luo dynaamisia segmenttejä, [...slug] kattaa kaikki alireitit ja [[...slug]] tekee niistä valinnaisia. Reittiryhmät, kuten (name), järjestävät koodia vaikuttamatta URL-osoitteeseen ja mahdollistavat ryhmäkohtaiset layoutit. Käyttäkää generateStaticParams-funktiota koontiaikaiseen esirenderöintiin.
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 ”Dynaamiset reitit ja reittiryhmät” ilmainen?
Kyllä – oppitunnin ”Dynaamiset reitit ja reittiryhmä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 ”Dynaamiset reitit ja reittiryhmät”?
Luokaa [slug]-dynaamisia segmenttejä, (folder)-reittiryhmiä ja rinnakkaisia reittejä. 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 3/4.
Kuinka kauan ”Dynaamiset reitit ja reittiryhmä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