Yönlendirme

Dosya sistemi tabanlı App Router: layout’lar, sayfalar, dinamik segmentler, Link ve gezinme hook’ları.

App Router, app/ içindeki klasörleri URL’lerle eşleştirir ve bunları tarayıcının adres çubuğu ve geçmişiyle eşzamanlı tutar.

Sayfalar

page.tsx dosyasından bir bileşeni varsayılan olarak dışa aktarın:

app/sessions/page.tsxtsx
import { Text } from "@textjs/app";export default function SessionsPage() {  return <Text bold>Sessions</Text>;}

Layout’lar

Layout’lar rotaları sarar ve gezinme sırasında durumlarını korur.

app/layout.tsxtsx
import type { ReactNode } from "react";import { Box, Text } from "@textjs/app";import Link from "@textjs/app/link";export const metadata = { title: { default: "Acme", template: "%s · Acme" } };export default function RootLayout({ children }: { children?: ReactNode }) {  return (    <Box className="flex-col w-full h-full">      <Box className="flex-row h-1 px-1 gap-2">        <Text bold>▼ Acme</Text>        <Link href="/" shortcut="1">Home</Link>        <Link href="/sessions" shortcut="2">Sessions</Link>      </Box>      <Box className="grow">{children}</Box>    </Box>  );}

Dinamik segmentler

app/sessions/[id]/page.tsxtsx
import { Text, type PageProps } from "@textjs/app";export default function SessionPage({ params }: PageProps<{ id: string }>) {  return <Text>Session {params.id}</Text>;}

<Link> odaklanabilir ve tek tuşlu kısayolları destekler.

PropAçıklama
hrefHedef yol
shortcutBağlantıyı açan tuş
replaceGeçmiş kaydını değiştirme

useRouter

Koddan gezinin:

const router = useRouter();router.push("/sessions/new");router.back();

usePathname ve useParams

Geçerli rotayı okuyun:

import { useParams, usePathname } from "@textjs/app/navigation";const pathname = usePathname(); // "/sessions/42"const { id } = useParams<{ id: string }>(); // "42"

Geri, ileri ve derin bağlantıların tümü çalışır. Statik bir barındırma ortamında dinamik segmentler için index.html dosyasına bir geri dönüş gerekir. static adaptörü bu geri dönüşü 404.html olarak yazar.

Bu sayfayı GitHub’da düzenle