easy_router 0.9.4 copy "easy_router: ^0.9.4" to clipboard
easy_router: ^0.9.4 copied to clipboard

一个简单的路由器框架

Language: English | 中文简体

easy_router #

License Pub support

A Simple Flutter Page Jump Router

Get started #

1. Add dependency #

dependencies:
  easy_router: 0.9.4  #latest version

2. How to use #

2.1. Add EasyRoutePathAnnotation annotation

//True means that the parameter is required, and the constructor that passes the 
//EasyRouteParam parameter must be added.
@EasyRoutePathAnnotation("pageA", true)
class PageA extends StatelessWidget {
  final EasyRouteParam param;

  PageA(this.param);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Page A"),
      ),
      body: Container(
        alignment: Alignment.center,
        child: Text("param:${param["key"]}"),
      ),
    );
  }
}

//False means no parameters are required, no need to add a constructor that passes the 
//EasyRouteParam parameter
@EasyRoutePathAnnotation("pageB", false)
class PageB extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Page B"),
      ),
      body: Container(
        alignment: Alignment.center,
        child: Text("no param"),
      ),
    );
  }
}

2.2. Add router annotations

Use @EasyRouterAnnotation() to annotate the custom class before you can generate the relevant code with the command, for example

@EasyRouterAnnotation()
class Router {
  
}

2.3. Generate code

cd to your app module and execute the command

flutter packages pub run build_runner build --delete-conflicting-outputs

It is recommended to clean up the previous code before building

flutter packages pub run build_runner clean

2.4. Display page

onPressed: () {
    Navigator.of(context).push(
        MaterialPageRoute(
            builder: (context) {
                return EasyRouter.instance.getWidget("pageA", {"key": "a"});
                //or
                //return EasyRouter.instance.getWidget("pageB");
            },
        ),
    );
}

Recommend wrapping EasyRouter, refer to router.dart in demo

To learn how to generate code using source_gen, check out My Blog #

Plugins #

Plugins Status
source_gen Pub
build_config Pub
mustache4dart Pub

License #

the license is MIT

0
likes
20
pub points
0%
popularity

Publisher

unverified uploader

一个简单的路由器框架

Repository (GitHub)
View/report issues

License

MIT (LICENSE)

Dependencies

flutter, mustache4dart, source_gen

More

Packages that depend on easy_router