better_router 1.0.0 copy "better_router: ^1.0.0" to clipboard
better_router: ^1.0.0 copied to clipboard

A powerful, but for humans, flutter router.

example/better_router_example.dart

import 'package:better_router/better_router.dart';
import 'package:flutter/material.dart';

class Book {
  final String id;
  final String name;
  final String author;

  const Book({required this.id, required this.name, required this.author});
}

void main() {
  final books = [
    const Book(id: '3160', name: 'The Odyssey', author: 'Homer'),
    const Book(
        id: '8795', name: 'The Divine Comedy', author: 'Dante Alighieri'),
  ];

  final betterRoutes = BetterRouter(routes: {
    '/': (context) => Column(children: [
          Text('root page'),
          TextButton(
              onPressed: () => Navigator.pushNamed(context, "/books"),
              child: Text("Books"))
        ]),
    '/home': (_) => Text('home page'),
    '/books': (context) => Column(children: [
          for (var i = 0; i < books.length; i++)
            TextButton(
                onPressed: () =>
                    Navigator.pushNamed(context, "/books/${books[i].id}"),
                child: Text(books[i].name))
        ]),
    r"\/books\/(?<id>.+)": (context) {
      final params =
          ModalRoute.of(context)!.settings.arguments as Map<String, String?>;

      return Column(
        children: [Text('book page'), Text("Book ID: ${params['id']}")],
      );
    },
    '*matchAll': (_) => Text('not found page'),
  });

  runApp(MaterialApp(onGenerateRoute: betterRoutes));
}
2
likes
70
pub points
17%
popularity

Publisher

verified publisheremersonalmeida.wtf

A powerful, but for humans, flutter router.

Repository (GitHub)
View/report issues

Documentation

API reference

License

BSD-3-Clause (LICENSE)

Dependencies

flutter

More

Packages that depend on better_router