我正在学习Flutter,大部分教程都使用Provider
软件包,但Youtube上也有一些使用GetX
,我搜索了一下,发现似乎还有其他软件包,如Bloc
,Riverpod
等。
我很困惑,不知道该用哪一个?看起来GetX
比Provider
简单,有更多的功能/特性,如导航,但没有太多的代码/教程使用它!我想知道为什么?还有我应该用哪一个?
编辑:也许这看起来像是一个基于观点的问题,但在我看来不是。我想知道为什么大多数教程/开源代码仍然使用Provider
包超过GetX
,Riverpod
,Bloc
等?Provider
是Flutter支持的官方软件包吗?使用起来更安全吗?它的bug更少吗?或者仅仅是因为它是大多数开发人员学习使用的第一个软件包,它对他们很有效,所以他们不喜欢用更好的软件包来取代它?
2条答案
按热度按时间utugiqy61#
Provider
**软件包有许多优点,特别是与ChangeNotifiers结合使用时-它非常容易理解和推理。文档清晰简洁,还提供了最佳实践指南。您可以在小部件中使用React式和非React式ChangeNotifiers,这意味着您可以依赖其他ChangeNotifiers,而不会收到更改通知。这提供了许多性能优势。您也可以将提供程序用作简单的依赖项注入容器。唯一的问题是,您需要访问附加到小部件树的BuildContext。
GetX
**不仅是一个状态管理库,而且是一个结合了路由管理和依赖注入的微框架。它旨在为Flutter提供超轻量但功能强大的解决方案中的顶级开发体验。GetX基于三个基本原则构建:性能:注重最小的内存和资源消耗
生产力:直观、高效的工具,并结合了简单明了的语法,最终节省了开发时间
组织机构:将业务逻辑与视图和表示逻辑分离是再好不过的了,您不需要上下文来导航路径,也不需要有状态的小部件
rm5edbpk2#
好问题。这个问题也想知道我。并没有找到确切的答案。但使用Getx我看到,我不需要任何其他软件包,如供应商,Riverpood或块,Getx可以做我需要的。