Fluro路由管理
Flutter
Fluro
Flutter路由管理。
Fluro作为一款优秀的Flutter企业级路由框架,Fluro的使用比官方提供的路由框架要复杂一些,但是却非常适合中大型项目。因为它具有层次分明、条理化、方便扩展和便于整体管理路由等优点。
fluro: ^1.7.8
修正 flutter fluro与系统Router冲突
在新版本使用FluroRouter 代替Router对象
或者
import 'package:flutter/material.dart' hide Router;
使用
dependencies:
fluro: ^1.7.8
建立路由映射文件
import 'package:fluro/fluro.dart';
application.dart
Router进行静态化,这样在任何一个页面都可以直接调用它。
import 'package:fluro/fluro.dart';
class FluroApplication{
static FluroRouter router;
}
routes/fluro_routes.dart
新建一个路由映射文件,用来对每个路由进行管理。
import 'package:flutter/cupertino.dart';
import 'package:fluro/fluro.dart';
class Routes {
static String splash = '/splash';
static String index = '/index';
static void configureRoutes(FluroRouter router){
// 路由未找到404
router.notFoundHandler = Handler(
handlerFunc: (BuildContext context, Map<String, List<String>> params) {
return NotFoundPage();// 响应404Page
}
);
// 定义
router.define(splash, handler: splashHandler);
//...
//...
}
}
routes/route_handlers.dart
完成基本的路由配置
import 'package:fluro/fluro.dart';
import 'package:flutter/material.dart';
var splashHandler = Handler(
handlerFunc: (BuildContext context, Map<String, List<String>> params) {
return SplashPage();
});
var rankHandler = Handler(
handlerFunc: (BuildContext context, Map<String, List<String>> params) {
return HotRankPage();
});
main.dart
在main.dart文件中引入路由配置文件和静态化文件了
import 'package:fluro/fluro.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
MyApp() {
//初始化Fluro
final router = new FluroRouter();
FluroRoutes.configureRoutes(router);
FluroApplication.router = router;
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home:Scaffold(
appBar: AppBar(
title: Text('Flutter Demo')
),
body: HomePage(),
)
}
}
如何调用/
FluroApplication.router.navigateTo(context, '/index');