Flutter - 路由管理
·
定义:
路由管理管理是构建多页面应用的核心,它通过Navigator和Route来管理页面栈,实现页面跳转和返回

路由管理 - 基本路由
- 场景:基本路由适合页面不多,跳转逻辑简单的场景
- 用法:无需提前注册路由,跳转时创建MaterialPageRoute实例即可

- 跳转新页面:Navigator.push(BuildContext context, Route route)
- 返回上一页:Navigator.pop(BuildContext context)
- 注意:MaterialApp是路由系统组件,只能有一个MaterialApp包裹
路由管理 - 命名路由
场景:应用页面增多后,使用命名路由提升代码可维护性
用法:需要先在MaterialApp中注册一个路由表(routes)并设置initialRoute(首页)

路由管理 - 跳转方法:

路由管理 - 传递参数
作用:通过路由传递参数时实现页面间数据通信的常用方式
传递参数(命名路由):Navigator.pushNamed(context,地址,arguments:{参数})
接收参数(命名路由):ModalRoute.of(context)?.settings.arguments
接收时机:initState获取不到路由参数,放置在Future.microtask(异步微任务)中


路由管理 - 传递参数 - 基础路由
传递参数(基础路由):通过组件构造函数传递参数 - (父传子)
接收参数(基础路由):通过组件构造函数接收参数 - (父传子)
接收时机:initState可获取到基础路由的构造函数传参

路由管理 - 动态路由与高级控制
场景:更复杂的场景,如需要根据参数动态生成页面,或实现路由拦截,可以使用onGenertaeRoute和onUnkonwRoute

- onGenerateRoute:允许RouteSettings(包含路由名称和参数)动态创建不同的Route
-

- onUnkonwRoute:跳转一个未在路由表中注册,也未在onGenertaeRoute中处理的路由,会调用此回调。通常显示”“404”页面
更多推荐
所有评论(0)