iToverDose/Yazılım· 29 NISAN 2026 · 04:00

Flutter'da Navigasyon Kontrolü: GoRouter Rehberi

Flutter uygulamalarında navigasyonu kontrol altına almak için GoRouter kullanabilirsiniz. Bu rehber, GoRouter'ın temel özelliklerini ve kullanımını anlatıyor.

DEV Community1 dk okuma0 Yorumlar

GoRouter, Flutter'ın resmi olarak önerilen routing paketidir. URL tabanlı navigasyon, derin bağlantılar, auth guard'lar ve iç içe geçmiş rotalar - hepsi temiz ve okunabilir bir kod ile sağlanmaktadır.

Temel Kurulum

GoRouter'ı kullanmaya başlamadan önce, go_router paketini projenize eklemelisiniz. Ardından, GoRouter sınıfını oluşturup, rotalarınızı tanımlayabilirsiniz.

final router = GoRouter(
  initialLocation: '/',
  routes: [
    GoRoute(
      path: '/',
      builder: (context, state) => const HomePage(),
    ),
    GoRoute(
      path: '/profile/:userId',
      builder: (context, state) {
        final userId = state.pathParameters['userId']!;
        return ProfilePage(userId: userId);
      },
    ),
  ],
);

Navigasyon

GoRouter, navigasyon için çeşitli yöntemler sağlar. push yöntemi, back stack'i korurken yeni bir sayfa açar. go yöntemi, geçmişini değiştirir. push yöntemiyle path parametreleri ve sorgu parametreleri de gönderebilirsiniz.

// Push (keeps back stack)
context.push('/settings');
// Go (replaces history)
context.go('/home');
// With path parameters
context.push('/profile/user-123');
// With query parameters
context.push('/search?q=flutter&tag=dart');

Auth Guard

GoRouter, auth guard'lar için bir yöntemler sağlar. redirect parametresi, kullanıcıların yetkisine göre yönlenmesini sağlar.

final router = GoRouter(
  refreshListenable: authNotifier,
  redirect: (context, state) {
    final isAuthenticated = authNotifier.isAuthenticated;
    final isGoingToLogin = state.matchedLocation == '/login';
    if (!isAuthenticated && !isGoingToLogin) {
      return '/login?redirect=${state.uri}';
    }
    if (isAuthenticated && isGoingToLogin) {
      return '/';
    }
    return null;
  },
  routes: [
    GoRoute(path: '/login', builder: (_, __) => const LoginPage()),
  ],
);

## Sonuç

GoRouter, Flutter uygulamalarında navigasyonu kontrol altına almak için güçlü bir araçtır. URL tabanlı navigasyon, auth guard'lar, iç içe geçmiş rotalar ve Riverpod entegrasyonu gibi özellikleriyle, herhangi bir Flutter uygulaması için ideal bir seçimdir.

Yapay zeka özeti

Flutter uygulamalarında navigasyonu kontrol altına almak için GoRouter kullanın. Bu makale, GoRouter'ın temel özelliklerini ve kullanımını anlatıyor.

Yorumlar

00
YORUM BIRAK
ID #LD2M9G

0 / 1200 KARAKTER

İnsan doğrulaması

6 + 5 = ?

Editör onayı sonrası yayına girer

Moderasyon · Spam koruması aktif

Henüz onaylı yorum yok. İlk yorumu sen bırak.