为什么大部分代码都使用Provider包而不使用GetX/Riverpod/Bloc?

Goo*_*Man 4 state-management flutter flutter-provider riverpod flutter-getx

我正在学习颤振。大多数教程使用Providerpackage,但 Youtube 上的其他一些教程使用GetX. 我搜索了一下,发现似乎还有其他软件包,例如BlocRiverpod等等。

我很困惑,不知道该用哪一个?它似乎GetX比导航更简单Provider,并且具有更多功能/特性,例如导航,但是使用它的代码/教程并不多!我想知道为什么?另外我应该使用哪一个?

编辑:也许这看起来像是一个基于意见的问题,但在我看来并非如此。我想知道为什么大多数教程/开源代码仍然使用Providerpackage over GetXRiverpodBloc等?

ProviderFlutter支持的官方包并且使用起来更安全吗?它有更少的错误吗?或者只是因为它是大多数开发人员学会使用的第一个包并且它对他们有用,所以他们不喜欢用更好的包来替换它?

Tas*_*hin 7


该包有很多优点,Provider特别是与 ChangeNotifiers 结合使用时 -

它非常容易理解和推理。该文档清晰简洁,并提供最佳实践指南。您可以在 Widget 中使用反应式和非反应式 ChangeNotifier,这意味着您可以依赖其他 ChangeNotifier,而不会收到有关更改的通知。这提供了许多性能优势。您也可以使用 Provider 作为简单的依赖注入容器。唯一的问题是,您需要有权访问附加到小部件树的 BuildContext。


GetX它不仅仅是一个状态管理库,而是一个结合了路由管理和依赖注入的微框架。它旨在通过超轻量级但功能强大的 Flutter 解决方案提供顶级的开发体验。GetX 的构建遵循三个基本原则:

性能:注重内存和资源的最小消耗

生产力:直观高效的工具与简单明了的语法相结合,最终节省了开发时间

组织:将业务逻辑与视图和表示逻辑解耦没有比这更好的了。您不需要上下文来在路线之间导航,也不需要有状态的小部件