Last updated:
0 purchases
getx route generator
getx_route_generator #
Language: English | 中文
getx_route_generator is a code generation library based on build_runner, designed to generate a route table for pages using the GetX library. Say goodbye to manually writing route paths and GetPage mappings.
Usage #
Add the latest version of getx_route_generator to your dependencies.
dependencies:
getx_route_annotations: [latest-version]
dev_dependencies:
getx_route_generator: [latest-version]
copied to clipboard
Add the GetXRoutePage annotation above the class of the specific route page.
@GetXRoutePage("/home")
class HomePage extends StatefulWidget {}
copied to clipboard
(PS: GetXRoutePage requires passing a path. In the generated route table class, a global variable like the one below will be automatically generated and can be used directly.)
static const String home = '/home';
copied to clipboard
Then run the following command in the terminal:
flutter pub run build_runner build
copied to clipboard
getx_route_generator will automatically generate a route_table.dart file in the lib/generated directory based on the annotations you added. The generated code looks like this:
import 'package:get/get.dart';
import 'package:xxx/page/home_page.dart';
class RouteTable {
static const String home = '/home';
static final List<GetPage> pages = [
GetPage(name: '/home', page: () => HomePage()),
];
}
copied to clipboard
Certainly, you can also use the watch command, so you don't have to rerun the build command every time you make changes to the route pages.
flutter pub run build_runner watch
copied to clipboard
Bindings #
If you need to add a binding for the GetPage, you can use the following method to add the required controllers or objects. Add the dependencies parameter within the GetXRoutePage annotation, passing an array.
@GetXRoutePage("/home",, dependencies:[XController,XXController,XXXController])
class HomePage extends StatefulWidget {}
copied to clipboard
The generated code looks like this:
class RouteTable {
static const String home = '/home';
static final List<GetPage> pages = [
GetPage(
name: '/home',
page: () => HomePage(),
binding: BindingsBuilder(() {
Get.lazyPut<XController>(() => XController());
Get.lazyPut<XXController>(() => XXController());
Get.lazyPut<XXXController>(() => XXXController());
}),
),
];
}
copied to clipboard
That's it!
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.