ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] > [参考](https://pub.dev/packages/fluro) ## 概述 特性 - 简单的路线导航 - 功能处理程序(映射到函数而不是路由) - 通配符参数匹配 - querystring参数解析 - 内置的常见过渡 - 简单的自定义过渡创建(动画) - 遵循稳定的颤音通道 - 空安全 ## 快速开始 初始化路由 ``` final router = FluroRouter(); router.define('/home', handler: Handler(handlerFunc: (context, parameters) => HomeScreen())); router.define('/profile/:id', handler: Handler(handlerFunc: (context, parameters) { final id = parameters['id']?.first; return ProfileScreen(userId: id); })) ``` 导航到路由 ``` router.navigateTo(context, '/home'); router.navigateTo(context, '/profile/123', transition: TransitionType.fadeIn); // 可添加动画效果 ``` 路由拦截: ``` final authMiddleware = FluroMiddleware(); authMiddleware.handler = (context, parameters) async { if (!AuthService.isLoggedIn) { router.navigateTo(context, '/login', replace: true); } }; router.define('/profile/:id', handler: Handler(handlerFunc: (context, parameters) { final id = parameters['id']?.first; return ProfileScreen(userId: id); }), middleware: [authMiddleware]); ``` ## 示例 ``` import 'package:fluro/fluro.dart'; class AppRouter { static final AppRouter _instance = AppRouter._internal(); factory AppRouter() { return _instance; } AppRouter._internal(); static FluroRouter router = FluroRouter(); // 添加路由处理方法 void defineRoutes() { router.define('/home', handler: homeHandler); // 定义其他路由... } // 定义路由处理器 final homeHandler = Handler( handlerFunc: (BuildContext? context, Map<String, dynamic> params) { return HomePage(); }, ); } ``` main ``` import 'package:flutter/material.dart'; import 'package:fluro/fluro.dart'; void main() { // 初始化路由 FluroRouter router = AppRouter.router; AppRouter().defineRoutes(); // 启动应用程序 runApp(MyApp()); } ```