導入は1コマンド
追加のコード生成設定なしで導入できます。
状態中心の設計
List<PageEntry> と OverlayRequest? を状態として持つだけです。
段階的に移行可能
1フローずつ宣言的ナビゲーションへ置き換えられます。
導入と初期化
pub add の後に、ページとオーバーレイの初期状態を定義します。
コマンド
初期状態の例
import 'package:declarative_nav/declarative_nav.dart';
class _AppRootState extends State<AppRoot> {
OverlayRequest? _overlay;
late List<PageEntry> _pages;
@override
void initState() {
super.initState();
_pages = const [
PageEntry(key: 'home', name: '/home'),
];
}
}
制約
同一スタック内では PageEntry.key を重複させない でください。Navigator上のページ識別子として使われます。