欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Flutter路由框架Fluro使用简介

程序员文章站 2022-03-14 10:48:21
在flutter应用开发过程中,除了使用flutter官方提供的路由外,还可以使用一些第三方路由框架来实现页面管理和导航,如fluro、frouter等。 fluro作为一款优秀...

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

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

使用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为配置路由

运行上面的示例代码,效果如下图所示。

Flutter路由框架Fluro使用简介

可以发现,fluro虽然使用上相比flutter的navigator要繁琐,但是对于中大型项目却非常适合,它的分层架构也非常方便项目后期的升级和维护,使用时可以根据实际情况进行合理的选择。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。