flutter 状态管理使用 GetX 还是 Riverpod

发布于 1周前 作者 sinazl 来自 Flutter

flutter 状态管理使用 getx 还是 riverpod ,有性能区别吗, 感觉 riverpod 有点复杂


flutter 状态管理使用 GetX 还是 Riverpod
28 回复

getx 大而全,使用上简单容易上手,riverpod 个人感觉用起来比 getx 麻烦点,但是配合代码生成也还好…性能上似乎 riverpod 更好点

更多关于flutter 状态管理使用 GetX 还是 Riverpod的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


我选择 riverpod

我们用 provider 。riverpod 算是 provider 的优化版吧。

riverpod ,觉得复杂是用的还不熟练,用多了就觉得好用了

no getx 太污染代码了,简单点用 provider

独立开发首选 GetX
团队开发听 Leader 的

我用的是 getIt 和配套的 watchIt ,感觉用的人不是很多

之前在用 getx ,现在在用 riverpod 重写。
getx 之前好长一段时间没 commit ,感觉维护不是很上心。

我们正在探索,目前用的是 provider

首先排除 Provider !那玩意用到后面项目发展大了才知道多酸爽;
getX 和 riverPod 对于简单项目没啥太大区别;不过对于那种要随着广播或者别的东西查询数据的神奇需求,你就知道为什么那帮搞 Toast 之类的作者总是想方设法摆脱 context 了……getx 的一个优势点可能就在这;
总之一句话,听 leader 的

哪个熟悉用哪个,反正别用 fish_redux

有没有示例或模板可以参考

有没有示例或模板可以参考

现在在使用 getx ,在考虑要不要切换为 riverpod

有没有示例或模板可以参考

现在一直在用 getx , 在考虑要不要切换为 riverpod , 感觉 riverPod 有点麻烦, 不知道 getx 和 riverPod 有没有性能差距

在考虑要不要切换为 riverpod

这俩在原理方面都是一样的吧,感觉性能差距不会有啥太大区别

riverpod getx 是不是类似于 react 和 vue 的关系, 一个自由但是得自己优化,不然写出来就像坨屎, 一个简单 帮你优化好了,不需要过多关注内部逻辑

<iframe src="https://www.youtube.com/embed/vtGCteFYs4M" class="embedded_video" allowfullscreen="" type="text/html" id="ytplayer" frameborder="0"></iframe>
?si=UgXCVsV1RNIWQEqC
简介里面有 github 地址

#20 一个纯状态管理,一个不仅仅状态管理(还有一些其他东西:路由、modal 、国际化),看个人喜欢了,我觉得没啥区别,如果用 riverpod 就比较纯粹一点,getx 比较省心一点。flutter 比较适合小团队快速开发,我现在喜欢 kotlin 和 swift 各自开发,用 flutter 写过 3 年项目,项目大了性能上跟 native 开发还差一口气

多看看官方文档

getx 可以把一个页面的数据放在一个 controller 里, 如果是 riverpod 是不是就得一个数据一个 provider

getx 可以把一个页面的数据放在一个 controller 里, 如果是 riverpod 是不是就得一个数据一个 provider

在Flutter状态管理的选择中,GetX和Riverpod都是颇受欢迎且功能强大的方案。以下是对两者的简要对比及建议:

GetX是一个快速、轻量级的状态管理和路由管理库,它提供了依赖注入、国际化、主题切换等多种便利功能。GetX的语法简洁,性能优秀,适合构建中小型应用。其特点包括:

  • 高性能:使用低延迟的GetValue和GetStream,不依赖于流(Streams)或ChangeNotifier。
  • 少量代码:无需为状态和事件创建类,无需代码生成,减少了样板代码。
  • 无不必要的重建:避免基于ChangeNotifier的状态管理器可能导致的重建问题。

Riverpod是Provider的升级版,提供了更强大的功能和更好的性能,同时保持了简洁性和易用性。它使用全新的架构,具有更好的依赖管理和异步处理能力。Riverpod的API设计灵活且复杂,适合大型复杂项目和有一定经验的开发者。其优势包括:

  • 现代化设计:支持Flutter的最新特性,灵活且易于测试。
  • 异步处理:对Future和Stream提供了强大和灵活的支持。
  • 测试友好:设计理念贴近纯函数式编程,有利于单元测试和集成测试。

综上所述,对于初学者和构建中小型应用,GetX可能是更好的选择,因其简洁易上手。而对于追求灵活性和功能全面的大型复杂项目,Riverpod则更为合适。

回到顶部