2.0的誕生
去年推出法法注解路由之后
經(jīng)(pian)過(lai)幾個工具人維護伐脖,版本已經(jīng)來到2.0汗捡,功能比較齊全穩(wěn)定愁铺。
沒有使用或者了解過法法注解路由,請看之前的文章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頁面將觸發(fā)下面代碼伸刃。
原生跳轉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頁面將觸發(fā)下面代碼,
動畫為PageRoute決定
///flutter=>flutter
onGenerateRoute: (settings) => onGenerateRouteHelper(
settings,
notFoundFallback: NoRouteWiget(),
),
- 隨帶講一下Flutter_Boost在Flutter這邊的實現(xiàn)捧颅。
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
只需要我們在第一次執(zhí)行命令的時候帶上-s
或者--save
,命令將會保存到本地。
下一次我們只需要執(zhí)行ff_route
即可忘晤。
支持掃描git
本來設計為只掃描本地引用的目錄宛蚓,后來有用戶提到做模塊化,會以git方法引用一些私有git庫设塔。
執(zhí)行-g, --git package1,package2
凄吏,后面跟的是你git庫的名字,比如
extended_image的demo中引用了flutter_candies_demo_library
那么我們在使用的時候只需要加上--git flutter_candies_demo_library
即可闰蛔。
支持對package的掃描
上面說了可能以git方式引用私有git庫痕钢,這種情況下,私有的git package就需要單獨進行執(zhí)行命令序六,生產(chǎn)對應法法路由的文件任连。
比如flutter_candies_demo_library作為糖果demo的基礎庫,以git方式引用例诀,其中PicSwiper作為一個全屏查看圖片的頁面被各個demo使用随抠。
執(zhí)行命令ff_route --package
對高低版本Flutter SDK的適配
命令 | 描述 |
---|---|
-na, --no-arguments | FFRouteSettings 將沒有arguments這個參數(shù),這個是主要是為了適配Flutter低版本 |
--no-is-initial-route | FFRouteSettings 將沒有isInitialRoute這個參數(shù),這個是主要是為了適配Flutter高版本 |
結語
期待更多的工具人的加入,互為工具繁涂,永不寂寞拱她。
最后放上 ff_annotation_route,歡迎加入Flutter Candies扔罪,一起生產(chǎn)可愛的Flutter 小糖果(QQ群:181398081)
最最后放上Flutter Candies全家桶秉沼,真香。