002 flutter的路由管理--命名路由
一 .概述
在前面我们说明了普通路由和对应的参数传递,但是在实际的项目之中,我们一般更多的会去使用命名路由.
命名路由可以让我们统一的进行路由的管理.
本次我们就来说明一下对应的命名路由是怎么实现的.
二 .定义全局的touters
Map<String,WidgetBuilder> routes = { "/home" : (context) => HomePage(), };
在上面的代码之中,我们实际上定义了一个字符串和路由的映射关系.
上面的代码我们需要注册到flutter的统一管理之中.
void main() => runApp( MaterialApp( home: Scaffold( appBar: AppBar( title: Text("title"), ), body: MyApp(), ), routes: routes, ), );
现在我们只需要使用下面的代码就可以完成命名路由了.
RaisedButton( child: Text("使用命名路由"), onPressed: (){ Navigator.pushNamed(context, "/home"); }, ),
我们可以发现,我们使用命名路由会简单很多,这少不需要再每次使用路由的时候都写那么长的代码了,还可以进行统一的管理.
三 . 使用命名路由进行参数的传递
在早期的flutter之中,是不支持命名路由传值的,但是当前的最新版本是支持的.
我们现在的全局路由变成了这样:
Map<String, WidgetBuilder> routes = { "/home": (context) => HomePage(), "/search" : (context,{arguments}) => SearchPage(arguments: arguments,), };
下面是使用命名路由的方式.
RaisedButton( child: Text(‘命名路由传值‘), onPressed: (){ Navigator.pushNamed(context, ‘/search‘,arguments: { "id" : 12344 }); }, )
总结 :
使用命名路由虽然现在变成了可行的操作,但是依然比较别扭.
还好,这些都是定死的东西,我们后面只需要按照这种方式i就可以完成命名路由传递数据了.
相关推荐
wangxuekuan 2020-11-24
xuedabao 2020-11-19
hjr 2020-10-21
sjun0 2020-11-12
bestallen 2020-08-17
80143853 2020-08-17
Tplinkly 2020-08-15
dingyahui 2020-08-12
JiangMengYa 2020-07-30
BingGoGo技术 2020-07-25
前端小白 2020-07-19
JudeJoo 2020-07-14
bowean 2020-07-05
82344699 2020-07-05
85423468 2020-06-26
tuxlcsdn 2020-06-21
独行者0 2020-06-20