Flutter
GoRouter nedir?
GoRouter ile bildirimsel navigation 2.0 yapmayı öğrenirsin.
GoRouter nedir?
GoRouter, Flutter için bildirimsel (declarative) navigation 2.0 sağlayan bir pakettir. Yolları bir liste halinde tanımlarsın; her yol bir GoRoute nesnesidir. MaterialApp.router ile GoRouter'ı uygulamanın yönlendirmesine bağlarsın.
final router = GoRouter(
routes: [
GoRoute(
path: '/',
builder: (context, state) => HomeScreen(),
),
],
);
GoRouter, URL'ye göre doğru ekranı otomatik seçer ve geri/ileri düğmeleriyle uyumlu çalışır.
MaterialApp.router ile bağlama
GoRouter'ı uygulamaya bağlamak için MaterialApp.router kullanırsın. routerConfig parametresine GoRouter nesnesini verirsin; böylece uygulamanın tüm yönlendirmesi GoRouter üzerinden geçer.
MaterialApp.router(
routerConfig: router,
title: 'Uygulamam',
);
Bu yöntem, Navigator.push çağrılarını GoRouter'ın bildirimsel yapısıyla değiştirir.
Uygulama Tek yollu GoRouter
routes adında bir liste tanımla: içinde path: '/' ve builder ile HomeScreen() döndüren bir GoRoute olsun. Bu 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();
}
final routes = [
GoRoute(
path: '/',
builder: (context, state) => const HomeScreen(),
),
];
final router = GoRouter(routes: routes);
void main() {
print(routes.length);
}
Kendini test et
-
GoRouter hangi navigation yaklaşımını sunar?
- Yalnızca setState ile state yönetimi
- Yalnızca sqflite veritabanı işlemleri
- C kodu derleme
- Bildirimsel (declarative) navigation 2.0
Cevabı göster
Bildirimsel (declarative) navigation 2.0 — GoRouter yolları bildirimsel bir liste olarak tanımlar; bu navigation 2.0 yaklaşımıdır. State yönetimi, veritabanı ve C derleme GoRouter'ın konusu değildir.
-
GoRouter'ı tanımla
final router = ____(
routes: [
GoRoute(
path: '/',
builder: (context, state) => HomeScreen(),
),
],
);
Cevabı göster
final router = GoRouter(
routes: [
GoRoute(
path: '/',
builder: (context, state) => HomeScreen(),
),
],
);
-
GoRouter parçaları
- GoRouter
- bildirimsel yönlendirici
- routes
- yol listesi
- GoRoute
- tek yol tanımı
- MaterialApp.router
- GoRouter'ı bağlar
Sıradaki ders: GoRoute