[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-9159":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":22,"hasPages":22,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":30,"readmeContent":31,"aiSummary":32,"trendingCount":16,"starSnapshotCount":16,"syncStatus":17,"lastSyncTime":33,"discoverSource":34},9159,"fluro","lukepighetti\u002Ffluro","lukepighetti","Fluro is a Flutter routing library that adds flexible routing options like wildcards, named parameters and clear route definitions.","https:\u002F\u002Fpub.dev\u002Fpackages\u002Ffluro",null,"Dart",3713,409,46,36,0,2,3,6,65.14,"MIT License",false,"main",[25,26,27,28,29],"flutter","flutter-routing","parameters","router","routing","2026-06-12 04:00:43","[English](.\u002FREADME.md) | [Português](.\u002Ftranslations\u002Fpt\u002FREADME.md)\n\n\u003Cimg src=\"https:\u002F\u002Fstorage.googleapis.com\u002Fproduct-logos\u002Flogo_fluro.png\" width=\"220\">\n\u003Cbr\u002F>\u003Cbr\u002F>\n\nThe brightest, hippest, coolest router for Flutter.\n\n[![Version](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002Flukepighetti\u002Ffluro?label=version)](https:\u002F\u002Fpub.dev\u002Fpackages\u002Ffluro)\n[![Build Status](https:\u002F\u002Fgithub.com\u002Flukepighetti\u002Ffluro\u002Fworkflows\u002Fbuild\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Flukepighetti\u002Ffluro\u002Factions)\n\n## Features\n\n- Simple route navigation\n- Function handlers (map to a function instead of a route)\n- Wildcard parameter matching\n- Querystring parameter parsing\n- Common transitions built-in\n- Simple custom transition creation\n- Follows `stable` Flutter channel\n- Null-safety\n\n## Example Project\n\nThere is a pretty sweet example project in the `example` folder. Check it out. Otherwise, keep reading to get up and running.\n\n## Getting started\n\nFirst, you should define a new `FluroRouter` object by initializing it as such:\n\n```dart\nfinal router = FluroRouter();\n```\n\nIt may be convenient for you to store the router globally\u002Fstatically so that\nyou can access the router in other areas in your application.\n\nAfter instantiating the router, you will need to define your routes and your route handlers:\n\n```dart\nvar usersHandler = Handler(handlerFunc: (BuildContext context, Map\u003CString, dynamic> params) {\n  return UsersScreen(params[\"id\"][0]);\n});\n\nvoid defineRoutes(FluroRouter router) {\n  router.define(\"\u002Fusers\u002F:id\", handler: usersHandler);\n\n  \u002F\u002F it is also possible to define the route transition to use\n  \u002F\u002F router.define(\"users\u002F:id\", handler: usersHandler, transitionType: TransitionType.inFromLeft);\n}\n```\n\nIn the above example, the router will intercept a route such as\n`\u002Fusers\u002F1234` and route the application to the `UsersScreen` passing\nthe value `1234` as a parameter to that screen.\n\n## Navigating\n\nYou can use `FluroRouter` with the `MaterialApp.onGenerateRoute` parameter\nvia `FluroRouter.generator`. To do so, pass the function reference to\nthe `onGenerate` parameter like: `onGenerateRoute: router.generator`.\n\nYou can then use `Navigator.push` and the flutter routing mechanism will match the routes\nfor you.\n\nYou can also manually push to a route yourself. To do so:\n\n```dart\nrouter.navigateTo(context, \"\u002Fusers\u002F1234\", transition: TransitionType.fadeIn);\n```\n\n## Class arguments\n\nDon't want to use strings for params? No worries.\n\nAfter pushing a route with a custom `RouteSettings` you can use the `BuildContext.settings` extension to extract the settings. Typically this would be done in `Handler.handlerFunc` so you can pass `RouteSettings.arguments` to your screen widgets.\n\n```dart\n\u002F\u002F\u002F Push a route with custom RouteSettings if you don't want to use path params\nFluroRouter.appRouter.navigateTo(\n  context,\n  'home',\n  routeSettings: RouteSettings(\n    arguments: MyArgumentsDataClass('foo!'),\n  ),\n);\n\n\u002F\u002F\u002F Extract the arguments using [BuildContext.settings.arguments] or [BuildContext.arguments] for short\nvar homeHandler = Handler(\n  handlerFunc: (context, params) {\n    final args = context.settings.arguments as MyArgumentsDataClass;\n\n    return HomeComponent(args);\n  },\n);\n```\n","Fluro 是一个为 Flutter 应用提供灵活路由选项的库，支持通配符、命名参数和清晰的路由定义。其核心功能包括简单的路由导航、函数处理器、通配符参数匹配、查询字符串解析以及内置的常见过渡效果等，并且遵循 Flutter 的稳定版本通道，支持空安全。Fluro 适用于需要实现复杂或动态路由配置的 Flutter 项目中，能够帮助开发者更高效地管理应用内页面之间的跳转逻辑。","2026-06-11 03:21:30","top_language"]