React Academy · Lektion

Navigation mit Expo Router

Richten Sie Expo Router für dateibasierte Navigation mit typisierten Routes und Deep Linking ein.

Lektion 3 von 413 Schritte

Navigation mit Expo Router ist eine kostenlose React Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des React Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der React Academy-Kurs umfasst insgesamt 4 Lektionen.

Was ist Expo Router?

Expo Router ist eine dateibasierte Routing-Bibliothek für React Native (auf Basis von React Navigation). Wie beim App Router von Next.js legt die Dateistruktur Ihre Navigationsrouten fest.

Installation

Erstellen Sie ein neues Expo-Projekt mit vorkonfiguriertem Expo Router.

# Create new project:
npx create-expo-app@latest my-app --template tabs

# Or add to existing Expo project:
npx expo install expo-router react-native-safe-area-context react-native-screens

Dateibasierte Routen

Dateien im Verzeichnis app/ werden automatisch zu Routen. index.tsx ist die Stammroute, [id].tsx ist ein dynamisches Segment.

app/
  _layout.tsx       # root layout (Stack navigator)
  index.tsx          # → / (home screen)
  profile.tsx        # → /profile
  posts/
    _layout.tsx      # posts stack layout
    index.tsx        # → /posts
    [id].tsx         # → /posts/123 (dynamic)

Stammlayout

Das Stamm-_layout.tsx umschließt alle Bildschirme mit Providern und definiert den Navigator der obersten Ebene.

// app/_layout.tsx
import { Stack } from 'expo-router';

export default function RootLayout() {
  return (
    <Stack>
      <Stack.Screen name="index" options={{ title: 'Home' }} />
      <Stack.Screen name="profile" options={{ title: 'Profile' }} />
    </Stack>
  );
}

Navigation mit Link

Verwenden Sie die Komponente Link aus expo-router für deklarative Navigation – ähnlich wie next/link.

import { Link } from 'expo-router';

function HomeScreen() {
  return (
    <Link href="/profile">Go to Profile</Link>
  );
}

Navigation mit useRouter

Verwenden Sie useRouter() für imperative Navigation – um programmgesteuert zu navigieren, zu ersetzen oder zurückzugehen.

import { useRouter } from 'expo-router';

function LoginForm() {
  const router = useRouter();

  async function handleLogin() {
    await login();
    router.replace('/dashboard');
  }
}

Dynamische Routen

Greifen Sie in einer Datei für dynamische Routen mit useLocalSearchParams() auf Routenparameter zu.

// app/posts/[id].tsx
import { useLocalSearchParams } from 'expo-router';

export default function PostScreen() {
  const { id } = useLocalSearchParams<{ id: string }>();
  return <PostDetail postId={id} />;
}

Tab-Navigation

Verwenden Sie Tabs aus expo-router innerhalb eines Gruppenlayouts für die Navigation über Tabs am unteren Bildschirmrand.

// app/(tabs)/_layout.tsx
import { Tabs } from 'expo-router';

export default function TabLayout() {
  return (
    <Tabs>
      <Tabs.Screen name="index" options={{ title: 'Home', tabBarIcon: ({ color }) => <HomeIcon color={color} /> }} />
      <Tabs.Screen name="explore" options={{ title: 'Explore' }} />
    </Tabs>
  );
}

Modale Bildschirme

Präsentieren Sie einen Bildschirm als Modal, indem Sie presentation: 'modal' in den Optionen von Stack.Screen festlegen.

// app/_layout.tsx
<Stack.Screen name="modal" options={{ presentation: 'modal', title: 'Settings' }} />

// Navigate to modal:
router.push('/modal');

Deep Linking

Expo Router verarbeitet Deep Links automatisch. Definieren Sie Ihr URL-Schema in app.json; Links wie myapp://posts/123 öffnen den richtigen Bildschirm.

// app.json
{
  "expo": {
    "scheme": "myapp"
  }
}

Authentifizierungsmuster

Verwenden Sie ein Stammlayout, das abhängig vom Authentifizierungsstatus entweder Authentifizierungsbildschirme oder die App-Tabs rendert.

// app/_layout.tsx
import { Redirect } from 'expo-router';

function RootLayout() {
  const { user } = useAuth();
  if (!user) return <Redirect href="/login" />;
  return <Stack />;
}

Schnelltest

Welcher Expo-Router-Hook liest dynamische Routenparameter wie die id in /posts/[id]?

Zusammenfassung

Expo Router verwendet dateibasiertes Routing: app/index.tsx → Startseite, app/[id].tsx → dynamische Route. Definieren Sie Layouts in _layout.tsx, navigieren Sie mit Link oder useRouter() und lesen Sie Parameter mit useLocalSearchParams() aus.

Kostenlos starten

Lerne React mit einem KI-Tutor — kostenlos

Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.

Kurse
88
Lektionen
324

Häufig gestellte Fragen

Ist die Lektion „Navigation mit Expo Router“ kostenlos?

Ja — der vollständige Text von „Navigation mit Expo Router“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des React Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der React Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Navigation mit Expo Router“?

Richten Sie Expo Router für dateibasierte Navigation mit typisierten Routes und Deep Linking ein. Du übst React Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um React Academy zu starten?

Keine Vorkenntnisse erforderlich. React Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „Navigation mit Expo Router“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser React Academy-Lektion Code schreiben und ausführen?

Ja. Jede React Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. React-Native-Core-Components vs. Web-DOM
  2. Styling mit StyleSheet-API und Flexbox
  3. Navigation mit Expo Router
  4. Auf Geräte-APIs zugreifen: Kamera, Standort und Push-Benachrichtigungen
← Zurück zu React Academy