Flutterjs css html

GETX

2022-04-15  本文已影响0人  东方奇迹

GetX 是 Flutter 上的一个轻量且强大的解决方案:高性能的状态管理、智能的依赖注入和便捷的路由管理。

1、状态管理

2、控制器的注入

class AsWorkStatisticsBinding implements Bindings {
  @override
  void dependencies() {
    Get.lazyPut<AsWorkStatisticsController>(() => AsWorkStatisticsController());
  }
}

static final List<GetPage> routes = [
    GetPage(
      name: workStatisticsPage,
      page: () => const AsWorkStatisticsPage(),
      binding: AsWorkStatisticsBinding(),
    ),
];
Get.toNamed(ASRouteConfig.workPlanDetailPage);
Get.to(AsWorkStatisticsPage(),binding: AsWorkStatisticsBinding());

    Get.lazyPut<AsWorkStatisticsController>(() => AsWorkStatisticsController());

3、动态/简单路由和静态/命名路由

请注意命名路由,只需要在api结尾加上Named即可,举例:

Get.to(NextScreen());
Get.toNamed("/NextScreen");
Get.back();
Get.off(NextScreen());
Get.offNamed("/NextScreen");
Get.offAll(NextScreen());
Get.offAllNamed("/NextScreen");

只要发送你想要的参数即可。Get在这里接受任何东西,无论是一个字符串,一个Map,一个List,甚至一个类的实例。

Get.to(NextScreen(), arguments: 'Get is the best');
Get.toNamed("/NextScreen", arguments: 'Get is the best');

在你的类或控制器上。

print(Get.arguments);
//print out: Get is the best
var data = await Get.to(Payment());
var data = await Get.toNamed("/payment");
Get.back(result: 'success');
// 并使用它,例:
if(data == 'success') madeAnything();
Get.to(XxxxPage(), preventDuplicates: false);
// 或者
Get.toNamed('xxx',  preventDuplicates: false);
// 默认的Flutter导航
Navigator.of(context).push(
  context,
  MaterialPageRoute(
    builder: (BuildContext context) {
      return HomePage();
    },
  ),
);

// 使用Flutter语法获得,而不需要context。
navigator.push(
  MaterialPageRoute(
    builder: (_) {
      return HomePage();
    },
  ),
);

// get语法
Get.to(HomePage());

4、GetView的使用

GetView只是对已注册的Controller有一个名为controller的getter的const Stateless的Widget,如果我们只有单个控制器作为依赖项,那我们就可以使用GetView,而不是使用StatelessWidget,并且避免了写Get.Find()。

GetView的使用方法非常简单,只是要将你的视图层继承自GetView并传入需要注册的控制器并Get.put()即可:

class GetViewAndGetWidgetExample extends GetView<GetViewCountController> {
  @override
  Widget build(BuildContext context) {

    Get.put(GetViewCountController());

    return Container();
  }
}
上一篇 下一篇

猜你喜欢

热点阅读