flutter 获取何时使用 GetX<Controller>、GetBuilder<Controller> 或 Obx()

Ner*_*ero 2 flutter flutter-get

正如标题所说,有几种方法可以更新状态。我什么时候应该选择一个?

Bak*_*ker 5

对此没有硬性规定,但这是我尝试决定的方法:

对象

  • 当我的控制器已经在别处注册并且我想要
  • 最小的代码/噪音
  • 反应式小部件

获取X

  • 当我的控制器是不是还没有注册,或者
  • 我想非常明确/清楚地说明正在使用哪个控制器或
  • 我需要initState在创建过程中运行一些调用,我想要
  • 反应式小部件

获取生成器

  • 我想手动决定小部件何时重建
  • 我有几个状态变量可以作为一个组一起刷新

笔记

在幕后,Obx 和 GetX 都使用流,订阅控制器可观察变量更改流以了解何时响应式重建。

GetBuilder 没有。

GetX 和 GetBuilder 都扩展 StatefulWidget