怎么使用路由框架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的这个框架太优秀了!

相关文章
相关标签/搜索