怎麼使用路由框架Fluro?Flutter的這個框架太優秀了!

在Flutter應用開發過程當中,除了使用Flutter官方提供的路由外,還能夠使用一些第三方路由框架來實現頁面管理和導航,如Fluro、Frouter等。java

Fluro做爲一款優秀的Flutter企業級路由框架,Fluro的使用比官方提供的路由框架要複雜一些,可是卻很是適合中大型項目。由於它具備井井有條、條理化、方便擴展和便於總體管理路由等優勢。git

那咱們怎麼使用這個優秀的 框架呢?跟我來github

還有BATJ、字節跳動面試專題,算法專題,高端技術專題,混合開發專題,java面試專題,Android,Java小知識,到性能優化.線程.View.OpenCV.NDK等已經上傳到了的個人GitHub面試

個人GitHub學習地址:https://github.com/Meng997998/AndroidJX點下star一塊兒學習算法

使用Fluro以前須要先在pubspec.yaml文件中添加Fluro依賴,以下所示。性能優化

dependencies:
 fluro: "^1.5.1"

若是沒法使用上面的方式添加Fluro依賴,還能夠使用git的方式添加Fluro依賴,以下所示。架構

dependencies:
 fluro:
   git: git://github.com/theyakka/fluro.git

成功添加Fluro庫依賴後,就能夠使用Fluro進行應用的路由管理與導航開發了。爲了方便對路由進行統一的管理,首先須要新建一個路由映射文件,用來對每一個路由進行管理。以下所示,是路由配置文件route_handles.dart的示例代碼。app

import 'package:fluro/fluro.dart';
import 'package:flutter/material.dart';
import 'package:flutter_demo/page_a.dart';
import 'package:flutter_demo/page_b.dart';
import 'package:flutter_demo/page_empty.dart';

//空頁面
var emptyHandler = new Handler(
    handlerFunc: (BuildContext context, Map<String, List<String>> params) {
      return PageEmpty();
    });

//A頁面
var aHandler = new Handler(
    handlerFunc: (BuildContext context, Map<String, List<Object>> params) {
      return PageA();
    });

//B頁面
var bHandler = new Handler(
    handlerFunc: (BuildContext context, Map<String, List<Object>> params) {
      return PageB();
    });

完成基本的路由配置後,還須要一個靜態的路由整體配置文件,方便咱們在路由頁面中使用。以下所示,是路由整體配置文件routes.dart的示例代碼。框架

import 'package:fluro/fluro.dart';
import 'package:flutter_demo/route_handles.dart';

class Routes {
  static String page_a = "/";                   //須要注意
  static String page_b = "/b";

  static void configureRoutes(Router router) {
    router.define(page_a, handler: aHandler);
    router.define(page_b, handler: bHandler);
    router.notFoundHandler =emptyHandler;     //空頁面
  }
}

在進行路由的整體配置時,還須要處理不存在的路徑狀況,即便用空頁面或者默認頁面進行代替。同時,須要注意的是應用的首頁必定要用「/」進行配置。
爲了方便使用,還須要把Router進行靜態化,這樣在任何一個頁面均可以直接調用它。以下所示,是application.dart文件的示例代碼。less

import 'package:fluro/fluro.dart';

class Application{
  static Router router;
}

完成上述操做後,就能夠在main.dart文件中引入路由配置文件和靜態化文件了,以下所示。

import 'package:fluro/fluro.dart';
import 'package:flutter_demo/routes.dart';

import 'application.dart';

void main() {
  Router router = Router();
  Routes.configureRoutes(router);
  Application.router = router;

  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Demo App',
      onGenerateRoute: Application.router.generator,
    );
  }
}

若是要在跳轉到某個頁面,只須要使用Application.router.navigateTo()方法便可,以下所示。

Application.router.navigateTo(context,"/b"); //b爲配置路由

運行上面的示例代碼,效果以下圖所示。
怎麼使用路由框架Fluro?Flutter的這個框架太優秀了!

能夠發現,Fluro雖然使用上相比Flutter的Navigator要繁瑣,可是對於中大型項目卻很是適合,它的分層架構也很是方便項目後期的升級和維護,使用時能夠根據實際狀況進行合理的選擇。

在全世界,Flutter正在被愈來愈多的開發者和組織使用,Flutter徹底免費、開源,做爲Google現在的親兒子,值得學習!

若是你不想落後,我能夠分享我學習Flutter的 視頻

這套 視頻包含入門到實戰,很是實用,有各大互聯網公司最愛的Flutter混合開發,企業項目必不可少的集成Native SDK的講解,以及從小白成長爲大牛必經之路Flutter插件的開發,還有更高深的Flutter項目優化內容的講解等等。

如今免費分享給你們一塊兒來,能夠評論區留言,也能夠私聊我

不要猶豫,關注我,一塊兒來走進Flutter的世界吧!

怎麼使用路由框架Fluro?Flutter的這個框架太優秀了!

相關文章
相關標籤/搜索