这是一个简单的颤振路由生成库,只需要少量的代码,然后利用注解配合源代码生成,自动生成路由表,省去手工管理路由代码的烦恼。
<>强特性强>
-
<李>自定义路由名称李>
<李>自定义路由动画李>
<李>自定义路由参数李>
<李>自定义路由逻辑李>
<强>依赖强>
依赖关系: #你的其它常规的依赖性 route_annotation: ^ 0.1.0 dev_dependencies: #你其他dev_dependencies这里 build_runner: ^ 1.5.0 route_generator: ^ 0.1.2 >之前
<强>单次构建强>
在项目根目录中运行颤振build_runner构建运行酒吧,可以在需要时为项目生成路由代码。这会触发一次性构建,该构建遍历源文件,选择相关文件,并为它们生成必要的路由代码。虽然这很方便,但如果您不必每次在模型类中进行更改时都必须手动构建,那么你可以选择持续构建。
<>强持续构建强>
在项目根目录中运行颤振酒吧运行build_runner手表来启动观察者,它可以使我们的源代码生成过程更加方便。它会监视项目文件中的更改,并在需要时自动构建必要的文件。
注释 描述 路由器 此注解用来标志某个为颤振应用程序的类,并以此生成相应的路由代码 RoutePage 此注解用来注解一个路由页面 RouteParameter 一个用来标志页面参数的注解,只为可选参数设计。用于RoutePage。 RouteField 此注解用来标志一个完全自定义的路由,被注解的对象必须作为路由页面类静态字段 PageRouteBuilderFuntcion 这个注解用来标识一个路由页面的RouteFactory静态方法 RoutePageBuilderFunction 这个注解用来标识一个路由页面的RoutePageBuilder静态方法 RouteTransitionBuilderFunction 这个注解用来标识一个路由页面的TransitionBuilder静态方法 RouteTransitionDurationField 这个注解用来标识一个自定义路由页面的过渡时长
<强>定义路由应用强>
@Router () 类DemoApp延伸StatefulWidget { @override _DemoAppState createState()=比;_DemoAppState (); } 类_DemoAppState延伸State{ @override 小部件构建(BuildContext上下文){ 返回MaterialApp ( initialRoute:“/?>//isInitialRoute为真实表示它将作为初始页面 @RoutePage (isInitialRoute:真) 类主页延伸StatelessWidget { @override 小部件构建(BuildContext上下文){ 返回脚手架(); } } >之前 <强>定义路由页面参数强>
对于单个参数
@RoutePage (params: [RouteParameter(“标题”))) 类> Navigator.of(上下文).pushNamed ( ROUTE_ONE_ARGUMENT_PAGE, 参数:“标题为空”, ); >之前注意事项:
对于单个参数的路,由利用导航器进行导航的时候参数即为原始参数。
对于多个参数
@RoutePage (params:(RouteParameter(“标题”),RouteParameter(“副标题”)]) 类TwoArgumentPage延伸StatelessWidget { 最终字符串标题; 最终字符串副标题; TwoArgumentPage ({。标题、关键关键this.subTitle}):超(关键:键); @override 小部件构建(BuildContext上下文){ 返回脚手架(); } } >之前导航
Navigator.of(上下文).pushNamed ( ROUTE_TWO_ARGUMENT_PAGE, 参数:{ “标题”:_titleController.text.isNotEmpty & # 63;_titleController.text :“标题为空”, “副标题”:_subTitleController.text.isNotEmpty & # 63;_subTitleController.text :“子标题为空”, }, ); >之前注意事项:
对于多个参数的路,由利用导航器进行导航的时候参数必须为Map<字符串,dynamic>。
颤振利用注解生成可自定义的路由的实现