2.0的诞生
去年推出法法注解路由之后
经(pian)过(lai)几个工具人维护,版本已经来到2.0,功能比较齐全稳定。
没有使用或者了解过法法注解路由,请看之前的文章Flutter 法法路由注解,下面讲的是2.0的增强功能。
命令简化
作为一个工具,命令太长,一直是大家吐槽的问题之一,从全称ff_annotation_route
改成了 ff_route
。改动很简单,将下图代码改为 ff_route
即可。
全新的帮助命令
ff_route -h
或者 ff_route --help
查看全部命令
支持Flutter_Boost
很多人问过,法法路由支持Flutter_Boost吗,我的答案是肯定。demo传送门
初始化一共有2个地方:
- 从原生跳转Flutter的地方
使用FlutterBoost.singleton.open
打开Flutter页面将触发下面代码。
原生跳转flutter动画只能原生决定。
///native=>flutter
FlutterBoost.singleton.registerDefaultPageBuilder(
(String pageName, Map params, String uniqueId) {
final routeResult = getRouteResult(
name: pageName,
arguments: params?.map(
(key, value) => MapEntry<String, dynamic>(key.toString(), value)),
);
return routeResult.widget ?? NoRouteWiget();
});
- Flutter跳转Flutter的地方
使用Navigator.of(context).pushNamed
打开Flutter页面将触发下面代码,
动画为PageRoute决定
///flutter=>flutter
onGenerateRoute: (settings) => onGenerateRouteHelper(
settings,
notFoundFallback: NoRouteWiget(),
),
- 随带讲一下Flutter_Boost在Flutter这边的实现。
1.利用builder回调重写MaterialApp中默认的Navigator
return MaterialApp(
title: 'Flutter Boost example',
builder: FlutterBoost.init(postPush: _onRoutePushed),
2.每当使用FlutterBoost.singleton.open
从原生跳转flutter的时候,将在flutter端利用Overlay插入一个新的Navigator
3.Navigator.of(context).pushNamed
将在顶层Navigator中跳转
保存命令
工具就是了方便,就算是有帮助命令,每次生成的时候看一下也是很麻烦,而且项目的命令应该是不变的。于是提供了一个新的命令-s
或者--save
只需要我们在第一次执行命令的时候带上-s
或者--save
,命令将会保存到本地。
下一次我们只需要执行ff_route
即可。
支持扫描git
本来设计为只扫描本地引用的目录,后来有用户提到做模块化,会以git方法引用一些私有git库。
执行-g, --git package1,package2
,后面跟的是你git库的名字,比如
extended_image的demo中引用了flutter_candies_demo_library
那么我们在使用的时候只需要加上--git flutter_candies_demo_library
即可。
支持对package的扫描
上面说了可能以git方式引用私有git库,这种情况下,私有的git package就需要单独进行执行命令,生产对应法法路由的文件。
比如flutter_candies_demo_library作为糖果demo的基础库,以git方式引用,其中PicSwiper作为一个全屏查看图片的页面被各个demo使用。
执行命令ff_route --package
对高低版本Flutter SDK的适配
命令 | 描述 |
---|---|
-na, --no-arguments | FFRouteSettings 将没有arguments这个参数,这个是主要是为了适配Flutter低版本 |
--no-is-initial-route | FFRouteSettings 将没有isInitialRoute这个参数,这个是主要是为了适配Flutter高版本 |
结语
期待更多的工具人的加入,互为工具,永不寂寞。
最后放上 ff_annotation_route,欢迎加入Flutter Candies,一起生产可爱的Flutter 小糖果(QQ群:181398081)
最最后放上Flutter Candies全家桶,真香。