在 flutter 中我应该在哪里使用 GetBuilder、GetX 或 Obx?我在网上看到了一些答案。但你能分享一个简单的解释吗? 当我想从 firebase 集合中读取数据时,应该使用哪一个?
简单地说:
当您想从控制器手动更新小部件的状态时,请使用
GetBuilder
,使用 update()
,
使用
Obx
,当您想要根据可观察变量.obs
的值更新小部件时,因此每当您更改其值时,Obx
都会在您的应用程序中自动更新。
当你想自动更新一个带有 id 的特定 Widget 时使用
Getx
作为示例,你可以将其想象为 GetBuilder
但使用 Obx 观察
但请谨慎使用它们,因为根据文档,Getbuilder 消耗更少的资源,因此具有更好的性能,并且
Obx
基于流,因此消耗更多资源。
从官方文档可以了解更多关于它们的信息
Flutter 应用开发过程中,您可以在不同情况下使用 GetBuilder、GetX 或 Obx:
GetBuilder:当您只想根据特定状态更改更新小部件视图的一小部分时,可以使用 GetBuilder。例如,如果您在控制器中管理多个状态,并且只想更新依赖于这些状态的一些小部件,则可以使用 GetBuilder 来构建这些特定的小部件。
GetX:GetX 结合了 GetBuilder、Obx 以及 GetX 提供的其他功能。当您想要观察状态更改并自动更新依赖于它们的小部件时,可以使用 GetX。 GetX 性能更好,因为它只更新必要的小部件。
Obx:Obx 代表“观察者小部件”。当您想要更新与观察到的状态关联的所有小部件时,可以使用 Obx。每当观察到的状态发生变化时,Obx 就会自动重建小部件。当您有多个取决于多个状态的小部件并且您希望确保所有这些小部件始终根据状态更改进行更新时,这非常有用。
选择 GetBuilder、GetX 或 Obx 取决于您的需求和应用程序的复杂性。如果您只需要更新小部件的一小部分,GetBuilder 可能是一个不错的选择。如果您想根据状态变化自动更新小部件,GetX 或 Obx 可能是更好的选择。
当您想从控制器手动更新小部件的状态时,请使用 GetBuilder ,使用 update() ;当您想根据可观察变量的值更新小部件时,请使用 Obx 。