Skip to content

sersr/flutter_nop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

state manager & route generator

example: router_demo

state manager

nop version:

    class CounterState {}
    //...
    Nav.put(() => CounterState());
    //...

    final app = MaterialApp(
      ...
      navigatorObservers: [
        ...,
        Nav.observer,
      ]
      ...
    );

    runApp(app);

    //...
    Widget build(BuildContext context) {
        final counter = context.getType<CounterState>();
        //...
    }

router version:

example: router_demo

    class CounterState {}

    final router = NRouter( ... );

    //...
    router.put(() => CounterState());
    //...
    
    final app = MaterialApp.router(
      routerConfig: router,
      // ...
    );
    runApp(app);

    //...
    Widget build(BuildContext context) {
        final counter = context.grass<CounterState>();
        //...
    }

route generator

pubspec.yaml:

  dependencies:
    nop_annotations:

  dev_dependencies:
    nop_gen:
    build_runner:

nop version:

link: route_gen

//  routes.dart

    import 'package:nop_annotations/nop_annotations.dart';

    part 'routes.g.dart';

    @NopRouteMain(
      main: MyHomePage,
      pages: [
        RouteItem(page: SecondPage),
        RouteItem(page: ThirdPage),
      ],
    )
    class AppRoutes {}

    class SecondPage extends StatelessWidget {
        const SecondPage({super.key, String? title});
        //...
    }
dart run build_runner build  
// 'routes.g.dart'

    class Routes {
        //...
      static final _secondPage =  NopRoute(
        name: '/secondPage',
        fullName: '/secondPage',
        builder: (context, arguments) => const Nop.page(
        child: SecondPage(title: arguments['title']),
        ),
      );
    }

    class NavRoutes {
      static NopRouteAction<T> secondPage<T>({
        BuildContext? context, String? title,
      }) {
        return NopRouteAction(
            context: context, route: Routes._secondPage, arguments:  {'title': title});
      }
    }

router version:

router_demo

dart run build_runner build --delete-conflicting-outputs

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages