jjzjj

???建议收藏!!Flutter状态管理插件哪家强?请看岛上码农的排行榜!

岛上码农 2023-03-28 原文

前言

一路下来,Flutter 状态管理相关的文章写了有几十篇了,这是本人也没想到的结果。Flutter 的状态管理插件实在太多,感觉要深挖,可以继续写上几十篇。只是,这样写,怕是自己不累,看客都累了!???授人以鱼不如授人以渔,本篇就专门对 Flutter 比较流行的状态管理插件做一个合集并附上对比分析和排行榜。大家可以结合对比数据和官方文档来在实际开发中选择。大家可以在评论区晒出自己用的状态管理插件和选择的理由,互相参考一下!

横向对比参数

我们横向对比以数据说话,综合了 pub 的喜欢数(Likes)、流行度(Popularity)和得分(Pub Points),Gitbub的 Star 数、贡献者数量五个维度进行比对。各个参数说明如下:

  • 喜欢数(Likes):反映的是该插件受 Flutter 开发者的喜好程度,间接反映了插件的文档完整性、可读性和插件的易用性;
  • 流行度(Popularity):反映的是该插件受 Flutter 开发者的欢迎程度和插件应用的广泛性(白话解释:使用人的人越多,意味着有更多的人提前帮你踩坑?)。
  • 得分(Pub Points):pub 的得分满分是130分,其实是对插件的一个比较基础的全面评测,分为如下6个部分:
    • 遵循插件规范(20分)
    • 文档完整性(20分)
    • 跨平台支持(20分)
    • 通过静态分析(30分)
    • 版本兼容性(20分)
    • 支持 null safety(20分)
  • GitHub Star 数:这个大家都懂,反映的是受开发者认可的程度,实力的象征!
  • 贡献者数量:这个其实就是插件的社区号召力和参与维护的人数,贡献者越多也意味着插件的可靠性越高,不至于说更新过慢或突然中止维护(中止维护属于天坑了???)。

为了统一对比尺度,我们统一按与本篇列出的管理插件同维度最大值进行比对,根据比值得出星级,共设置5颗星,比值与星级对应关系如下:

  • 0.9-1.0:5星
  • 0.8-0.9:4星
  • 0.6-0.8:3星
  • 0.3-0.6:2星
  • 0.3以下:1星

状态管理插件对比分析

我们先看对比数据,再来做星级评比,状态管理插件清单的五项数据如下:

插件名称 喜欢数 流行度(%) 得分 Star 数 贡献者数量
Provider 5207 100 130 3.9k 60
Redux 245 97 115 475 14
MobX 696 98 120 2k 61
GetX 6406 99 120 4.9k 140
BLoC 1215 99 130 7.8k 135
Event Bus 257 98 130 597 3
GetIt 1540 99 130 786 19
FlutterCommand 43 72 130 28 3
Binder 47 57 120 163 2
StateRebuilder 319 95 120 390 6
Stacked 850 97 110 543 62
Fish Redux 52 92 100 7.2k 34
flutter_meedu 46 85 130 15 2
Riverpod 1039 98 130 2k 61
flutter_hooks 816 98 130 1.9k 31

各项参数星级评定如下:

插件名称 喜欢数 流行度(%) 得分 Star 数 贡献者数量
Provider ★★★★ ★★★★★ ★★★★★ ★★★ ★★
Redux ★★★★★ ★★★★
MobX ★★★★★ ★★★★★ ★★
GetX ★★★★★ ★★★★★ ★★★★★ ★★★ ★★★★★
BLoC ★★★★★ ★★★★★ ★★★★★ ★★★★★
Event Bus ★★★★★ ★★★★★
GetIt ★★★★★ ★★★★★
FlutterCommand ★★★ ★★★★★
Binder ★★ ★★★★★
StateRebuilder ★★★★★ ★★★★★
Stacked ★★★★★ ★★★★ ★★
Fish Redux ★★★★★ ★★★ ★★★★★
flutter_meedu ★★★★ ★★★★★
Riverpod ★★★★★ ★★★★★ ★★
flutter_hooks ★★★★★ ★★★★★

排行榜

基于上面的星级评定和数据,我们把每项数据的比值求和,从大大小排序,得到的分值和排行榜如下。

插件名称 排名 综合评分 星级
GetX 1 4.54 ★★★★★
BLoC 2 4.14 ★★★★
Provider 3 3.74 ★★★★
Fish Redux 4 2.86 ★★★
Riverpod 5 2.83 ★★★
MobX 6 2.81 ★★★
flutter_hooks 7 2.57 ★★
GetIt 8 2.47 ★★
Stacked 9 2.46 ★★
Event Bus 10 2.11 ★★
Redux 11 2.05 ★★
StateRebuilder 12 2.02 ★★
flutter_meedu 13 1.87 ★★
FlutterCommand 14 1.75 ★★
Binder 15 1.53 ★★

怎么样?是否符合你心中的 Flutter 状态管理插件的排名?记得评论区晒出你正在用的状态管理插件哦!

有关???建议收藏!!Flutter状态管理插件哪家强?请看岛上码农的排行榜!的更多相关文章

  1. ruby-on-rails - 建模收藏夹 - 2

    我希望将Favorite模型添加到我的User和Link模型。业务逻辑用户可以有多个链接(即可以添加多个链接)用户可以收藏多个链接(他们自己的或其他用户的)一个链接可以被多个用户收藏,但只有一个所有者我对如何为这种关联建模以及在模型就位后如何创建用户收藏夹感到困惑?classUser 最佳答案 下面的数据模型怎么样:classUser:destroyhas_many:favorite_links,:through=>:favorites,:source=>:linkendclassLink:destroyhas_many:favor

  2. ruby - 如何每月在 Heroku 运行一次 Scheduler 插件? - 2

    在选择我想要运行操作的频率时,唯一的选项是“每天”、“每小时”和“每10分钟”。谢谢!我想为我的Rails3.1应用程序运行调度程序。 最佳答案 这不是一个优雅的解决方案,但您可以安排它每天运行,并在实际开始工作之前检查日期是否为当月的第一天。 关于ruby-如何每月在Heroku运行一次Scheduler插件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/8692687/

  3. ruby-on-rails - 无法使用 Rails 3.2 创建插件? - 2

    我对最新版本的Rails有疑问。我创建了一个新应用程序(railsnewMyProject),但我没有脚本/生成,只有脚本/rails,当我输入ruby./script/railsgeneratepluginmy_plugin"Couldnotfindgeneratorplugin.".你知道如何生成插件模板吗?没有这个命令可以创建插件吗?PS:我正在使用Rails3.2.1和ruby​​1.8.7[universal-darwin11.0] 最佳答案 随着Rails3.2.0的发布,插件生成器已经被移除。查看变更日志here.现在

  4. HBase Region 简介和建议数量&大小 - 2

    Region是HBase数据管理的基本单位,region有一点像关系型数据的分区。region中存储这用户的真实数据,而为了管理这些数据,HBase使用了RegionSever来管理region。Region的结构hbaseregion的大小设置默认情况下,每个Table起初只有一个Region,随着数据的不断写入,Region会自动进行拆分。刚拆分时,两个子Region都位于当前的RegionServer,但处于负载均衡的考虑,HMaster有可能会将某个Region转移给其他的RegionServer。RegionSplit时机:当1个region中的某个Store下所有StoreFile

  5. ruby-on-rails - 您希望看到哪些 Rails 插件? - 2

    您认为可以作为插件很好地存在于您的Rails应用程序中必须实现的哪些行为?您过去曾搜索过哪些插件功能但找不到?哪些现有的Rails插件可以改进或扩展,如何改进或扩展? 最佳答案 我希望在管理界面中看到一个引擎插件,它提供了应用程序中所有模型的仪表板摘要,以及可配置的事件图表。 关于ruby-on-rails-您希望看到哪些Rails插件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questio

  6. ruby - vagrant 从 github 安装插件 - 2

    我们正在使用Vagrant进行部署,我们最终希望将此集群部署在Rackspace上。vagrant-rackspace插件是一个自然的选择,但它有一些错误,这些错误未包含在最新的0.1.1版本中(notablythatvagrantprovisiondoesn'twork)。我已经在我的personalfork中解决了这个问题通过合并其他人的工作来对存储库进行改造。是否可以从github安装vagrant插件?显而易见的事情没有奏效:[unix]$vagrantplugininstallvagrant-rackspace--plugin-sourcehttps://github.com

  7. ruby-on-rails - 我需要从 HTML 转到 markdown,有什么建议吗? - 2

    我正在使用Maruku,将Markdown(超集)转换为HTML,你知道我该怎么做才能从HTML转换为Markdown吗? 最佳答案 Google发现了一个名为reverse_markdown的ruby​​脚本.它似乎可以满足您的需求。 关于ruby-on-rails-我需要从HTML转到markdown,有什么建议吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/175162

  8. IDEA使用LeetCode插件 - 2

    前言我们习惯用idea编写、调试代码,在LeetCode上刷题时,如果能够在IDEA编写代码,并且做好代码管理,是一件事半功倍的事情。对于后续复习题目,做笔记也会非常便利。本文目的在于介绍LeetCodeEditor的使用,以及配置工具类,最终目录结构如下:note:放置笔记src:放置代码leetcode.editor.cn:插件LeetCodeEditor自动生成utils:自定义的工具包,可用于自动化输入测试用例,定义题目需要的类(结构体)out:运行测试时自动生成LeetCodeEditorGitHub:https://github.com/shuzijun/leetcode-edit

  9. regex - Ruby 是否有类似于 Perl 6 语法的插件? - 2

    多年来,Perl一直是我首选的编程语言工具之一。Perl6语法看起来像是一个很棒的语言特性。我想知道是否有人开始为Ruby做这样的事情。 最佳答案 如果您想在Ruby中使用实际的Perl6语法,最好的选择是Cardinal,Parrot上的ruby​​编译器。它目前尚未完成并且非常缓慢,但我非常希望它最终成为一个可行的ruby​​实现。它目前大部分处于非事件状态,等待Parrot中的一些基础架构更改以支持改进的解析速度和其他功能。 关于regex-Ruby是否有类似于Perl6语法的插件

  10. ruby-on-rails - 你为 Rails 推荐哪个状态机插件? - 2

    关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于StackOverflow来说是偏离主题的,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,describetheproblem以及迄今为止为解决该问题所做的工作。关闭9年前。Improvethisquestion我正在为Rails3/ActiveRecord项目寻找一个相对简单的状态机插件。我做了一些研究并提出了以下插件:转换:https://github.com/qoobaa/transitions从旧的ActiveRecord状态机库中提取

随机推荐