0Pricing
React Academy · Ders

Expo Router ile Gezinme

Türlendirilmiş rotalar ve derin bağlantılarla dosya tabanlı gezinme için Expo Router'ı kurun.

Expo Router ile Gezinme, CoddyKit'te ücretsiz bir React Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, React Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. React Academy kursu toplamda 4 dersten oluşur.

Expo Router Nedir?

Expo Router, React Native için dosya tabanlı bir yönlendirme kitaplığıdır (React Navigation üzerine kuruludur). Next.js App Router gibi, dosya yapısı yönlendirme rotalarınızı tanımlar.

Kurulum

Önceden yapılandırılmış Expo Router ile yeni bir Expo projesi oluşturun.

# 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

Dosya Tabanlı Rotalar

app/ dizinindeki dosyalar otomatik olarak rotalara dönüşür. index.tsx kök rotadır, [id].tsx ise dinamik bir segmenttir.

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)

Kök Yerleşim

Kök _layout.tsx, tüm ekranları sağlayıcılarla sarar ve üst düzey gezgini tanımlar.

// 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>
  );
}

Link ile Gezinme

Bildirimsel yönlendirme için expo-router içindeki Link bileşenini kullanın; bu kullanım next/link'e benzer.

import { Link } from 'expo-router';

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

useRouter ile Gezinme

Emir temelli yönlendirme için useRouter() kullanın; yeni rota ekleme, rotayı değiştirme veya program aracılığıyla geri gitme işlemlerini gerçekleştirin.

import { useRouter } from 'expo-router';

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

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

Dinamik Rotalar

Dinamik bir rota dosyasında rota parametrelerine useLocalSearchParams() ile erişin.

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

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

Sekme Gezinmesi

Alt sekme gezinmesi için bir grup yerleşimi içinde expo-router'dan Tabs kullanın.

// 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>
  );
}

Açılır Pencere Ekranları

Stack.Screen seçeneklerinde presentation: 'modal' ayarlayarak bir ekranı açılır pencere olarak gösterin.

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

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

Derin Bağlantılar

Expo Router, derin bağlantıları otomatik olarak işler. URL şemanızı app.json içinde tanımlayın; myapp://posts/123 gibi bağlantılar doğru ekranı açar.

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

Kimlik Doğrulama Deseni

Kimlik doğrulama durumuna göre kimlik doğrulama ekranlarını veya uygulama sekmelerini koşullu olarak oluşturan bir kök yerleşim kullanın.

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

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

Kısa Sınama

/posts/[id] içindeki id gibi dinamik rota parametrelerini hangi Expo Router kancası okur?

Özet

Expo Router, dosya tabanlı yönlendirme kullanır: app/index.tsx → ana sayfa, app/[id].tsx → dinamik rota. Yerleşimleri _layout.tsx içinde tanımlayın, Link veya useRouter() ile gezinin ve parametreleri useLocalSearchParams() ile okuyun.

Sıkça Sorulan Sorular

“Expo Router ile Gezinme” dersi ücretsiz mi?

Evet — “Expo Router ile Gezinme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve React Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. React Academy kursu toplamda 4 dersten oluşur.

“Expo Router ile Gezinme” dersinde ne öğreneceğim?

Türlendirilmiş rotalar ve derin bağlantılarla dosya tabanlı gezinme için Expo Router'ı kurun. React Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

React Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te React Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“Expo Router ile Gezinme” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu React Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her React Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. React Native Temel Bileşenleri ve Web DOM
  2. StyleSheet API'si ve Flexbox ile Stil Verme
  3. Expo Router ile Gezinme
  4. Cihaz API'lerine Erişme: Kamera, Konum ve Anlık Bildirimler
← React Academy Sayfasına Dön