美文网首页Flutter圈子
怎么使用路由框架Fluro?Flutter的这个框架太优秀了!

怎么使用路由框架Fluro?Flutter的这个框架太优秀了!

作者: 程序员的Vere | 来源:发表于2020-01-17 17:54 被阅读0次

    在Flutter应用开发过程中,除了使用Flutter官方提供的路由外,还可以使用一些第三方路由框架来实现页面管理和导航,如Fluro、Frouter等。

    Fluro作为一款优秀的Flutter企业级路由框架,Fluro的使用比官方提供的路由框架要复杂一些,但是却非常适合中大型项目。因为它具有层次分明、条理化、方便扩展和便于整体管理路由等优点。

    那我们怎么使用这个优秀的 框架呢?跟我来

    还有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的示例代码。

    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文件的示例代码。

    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的Navigator要繁琐,但是对于中大型项目却非常适合,它的分层架构也非常方便项目后期的升级和维护,使用时可以根据实际情况进行合理的选择。

    在全世界,Flutter正在被越来越多的开发者和组织使用,Flutter完全免费、开源,作为Google如今的亲儿子,值得学习!

    如果你不想落后,我可以分享我学习Flutter的 视频

    这套 视频包含入门到实战,非常实用,有各大互联网公司最爱的Flutter混合开发,企业项目必不可少的集成Native SDK的讲解,以及从小白成长为大牛必经之路Flutter插件的开发,还有更高深的Flutter项目优化内容的讲解等等。

    现在免费分享给大家一起来,可以评论区留言,也可以私聊我

    不要犹豫,关注我,一起来走进Flutter的世界吧!

    相关文章

      网友评论

        本文标题:怎么使用路由框架Fluro?Flutter的这个框架太优秀了!

        本文链接:https://www.haomeiwen.com/subject/pyiczctx.html