Flutter 状态管理哪家强 Flutter 状态管有哪些

发布于 1周前 作者 sinazl 最后一次编辑是 5天前 来自 Flutter

声明式 UI 最重要的状态管理方面

Flutter 状态管理哪家强 Flutter 状态管有哪些?

形如 React-Redux Vue-Vuex Compose-JetpackMVVM

Flutter 现在发展出统治级的框架了吗?

19 回复

用过 get

更多关于Flutter 状态管理哪家强 Flutter 状态管有哪些的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


BLoC ?
get 我只当简易 DI 用的

最近 Getx 在 reddit 上被猛批
我一直在用 mobx ,在 flutter 上算小众,但毕竟 web 也在用,上手快。
bloc 用的人也很多 > redux

用过 Get ,能解决问题,但感觉比较奇葩

#3 为啥被批,有啥坑吗?

自己写一个

provider 怎么样

#10 公司目前也在用 Getx, 说实话新手上手的确是快, 也能很快产出东西. 但是建议在上手后还是多了解一下其他的状态管理框架以及基础的 InheritedWidget 原理.


如果只是说那个 package 的话,这个可能是更好的信息源: https://www.reddit.com/r/FlutterDev/comments/po1bei/why_is_getx_such_a_bad_state_management/

用过 Google 自家的 Provider 和 GetX 。

Provider 的问题是无论你要实现粗略还是精细的状态管理,你都需要写一大堆繁杂嵌套的代码,好处就是这个是官方维护的,执行效率不是问题,并且当你熟练掌握 Provider 的使用后,意味着你基本理解了 Flutter 状态刷新的背后机制。

GetX 相比起来代码直观简单很多(更傻瓜),并且非常容易解耦,自带了类似 get_it 的注入功能,并且集成了许多好用的模板( get_cli ,get_snippets )。但是作者的维护积极性以及最终 app 的运行效率都会更糟一些,许多建设性的 issue open 了两年多都没下文,且初学者直接用的话容易对各类问题一知半解。

但话说回来,Flutter 自身就很有问题,一个官方最早做的状态管理( stateful )不好用到如此多的第三方状态管理库相互“厮杀”就挺怪的。

对于我来说 Getx 最大的好处是用法和 Android Architecture Components 很相似,特别便于理解。

GetX +1 . 非常好用.

Provider / bloc 这种就不要再用了.

自然是 Riverpod 没得选

关于Flutter状态管理方案的选择,在2022年及至今,有几个主流的方案各有其优势。

Provider是一个轻量级的状态管理框架,它基于InheritedWidget和ChangeNotifier实现,提供了简单而强大的方式来共享状态,并支持依赖注入,非常适合小型应用和初学者。

Riverpod作为Provider的升级版,提供了更强大的功能和更好的性能,同时保持了简洁性和易用性。它使用全新的架构,具备出色的依赖管理和异步处理能力,适合中大型应用和有一定经验的开发者。

GetX则是一个快速、轻量级的状态管理和路由管理库,它提供了许多便利的功能,如依赖注入、路由管理、国际化、主题切换等。GetX的语法简洁且性能优秀,非常适合构建中小型应用,能够简化开发流程。

此外,Redux、MobX和BLoC也是Flutter中常见的状态管理框架。Redux通过单一的状态存储库管理状态,MobX基于响应式编程,而BLoC则基于Reactive Programming和Stream。

综上所述,选择哪种状态管理方案取决于具体的应用场景和开发经验。开发者应根据项目的复杂度和个人偏好来选择最适合的方案。

回到顶部