fluro

Fluro is a Flutter routing library that adds flexible routing options like wildcards, named parameters and clear route definitions.

Github stars Tracking Chart

The brightest, hippest, coolest router for Flutter.

Version
Build Status
Coverage

Features

  • Simple route navigation
  • Function handlers (map to a function instead of a route)
  • Wildcard parameter matching
  • Querystring parameter parsing
  • Common transitions built-in
  • Simple custom transition creation

Version compatability

See CHANGELOG for all breaking (and non-breaking) changes.

Getting started

You should ensure that you add the router as a dependency in your flutter project.

dependencies:
 fluro: "^1.5.1"

You can also reference the git repo directly if you want:

dependencies:
 fluro:
   git: git://github.com/theyakka/fluro.git

You should then run flutter packages upgrade or update your packages in IntelliJ.

Example Project

There is a pretty sweet example project in the example folder. Check it out. Otherwise, keep reading to get up and running.

Setting up

First, you should define a new Router object by initializing it as such:

final router = Router();

It may be convenient for you to store the router globally/statically so that
you can access the router in other areas in your application.

After instantiating the router, you will need to define your routes and your route handlers:

var usersHandler = Handler(handlerFunc: (BuildContext context, Map<String, dynamic> params) {
  return UsersScreen(params["id"][0]);
});

void defineRoutes(Router router) {
  router.define("/users/:id", handler: usersHandler);

  // it is also possible to define the route transition to use
  // router.define("users/:id", handler: usersHandler, transitionType: TransitionType.inFromLeft);
}

In the above example, the router will intercept a route such as
/users/1234 and route the application to the UsersScreen passing
the value 1234 as a parameter to that screen.

You can use the Router with the MaterialApp.onGenerateRoute parameter
via the Router.generator function. To do so, pass the function reference to
the onGenerate parameter like: onGenerateRoute: router.generator.

You can then use Navigator.push and the flutter routing mechanism will match the routes
for you.

You can also manually push to a route yourself. To do so:

router.navigateTo(context, "/users/1234", transition: TransitionType.fadeIn);

Main metrics

Overview
Name With Ownerlukepighetti/fluro
Primary LanguageDart
Program languageDart (Language Count: 6)
Platform
License:MIT License
所有者活动
Created At2017-04-25 07:23:44
Pushed At2023-03-22 17:54:12
Last Commit At
Release Count24
Last Release Name2.0.5 (Posted on )
First Release Name1.0.0 (Posted on )
用户参与
Stargazers Count3.7k
Watchers Count50
Fork Count415
Commits Count188
Has Issues Enabled
Issues Count215
Issue Open Count36
Pull Requests Count34
Pull Requests Open Count7
Pull Requests Close Count27
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private