Flutter
GoRoute
GoRoute ile yol tanımlamayı öğrenirsin.
GoRoute ile yol tanımlama
GoRoute, GoRouter'ın yol listesindeki tek yol tanımıdır. path parametresi URL yolunu, builder parametresi ise o yola girildiğinde gösterilecek ekranı belirler. builder, (BuildContext context, GoRouterState state) imzasına sahiptir ve bir Widget döndürür.
GoRoute(
path: '/ayarlar',
builder: (context, state) => AyarlarScreen(),
)
Birden fazla GoRoute
Bir GoRouter'ın routes listesi birden fazla GoRoute içerebilir. Her GoRoute'un kendi path'i ve builder'ı vardır. Kullanıcı URL'ye göre ilgili builder çağrılır.
GoRouter(
routes: [
GoRoute(
path: '/',
builder: (context, state) => HomeScreen(),
),
GoRoute(
path: '/ayarlar',
builder: (context, state) => AyarlarScreen(),
),
],
);
Uygulama İki yollu GoRouter
routes listesi tanımla: iki GoRoute içersin. İlki path: '/' ile HomeScreen(), ikincisi path: '/ayarlar' ile AyarlarScreen() döndürsün. Listeyi GoRouter'a ver ve main içinde route sayısını yazdır.
Örnek çözümü göster
import 'package:flutter/widgets.dart';
import 'package:go_router/go_router.dart';
class HomeScreen extends StatelessWidget {
const HomeScreen({super.key});
@override
Widget build(BuildContext context) => const SizedBox.shrink();
}
class AyarlarScreen extends StatelessWidget {
const AyarlarScreen({super.key});
@override
Widget build(BuildContext context) => const SizedBox.shrink();
}
final routes = [
GoRoute(
path: '/',
builder: (context, state) => const HomeScreen(),
),
GoRoute(
path: '/ayarlar',
builder: (context, state) => const AyarlarScreen(),
),
];
final router = GoRouter(routes: routes);
void main() {
print(routes.length);
}
Kendini test et
-
GoRoute'ın builder parametresi ne döndürür?
- Bir Widget
- Bir Map
- Bir Future
- Bir int
Cevabı göster
Bir Widget — builder, bir Widget döndürür; bu widget o yola girildiğinde ekranda gösterilir. Future async işlemler içindir, int sayıdır, Map veri yapısıdır.
-
GoRoute path parametresi
GoRoute(
____,
builder: (context, state) => AyarlarScreen(),
)
Cevabı göster
GoRoute(
path: '/ayarlar',
builder: (context, state) => AyarlarScreen(),
)
-
GoRoute parçaları
- path
- URL yolu
- builder
- ekran oluşturucu
- routes
- yol listesi
- GoRouterState
- yol durumu nesnesi
Sıradaki ders: context.go ve push