安装
Add the package, then move navigation and overlays into explicit state. Keep imperative push/pop out of the same stack.
单一依赖
Install with one pub command. No code generation setup is required.
状态优先接口
You control a List<PageEntry> and optional OverlayRequest as pure state.
渐进式接入
可以从一个功能流开始,按页面逐步迁移。
安装与初始化
先执行 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 页面身份的一部分。