一路下来,Flutter 状态管理相关的文章写了有几十篇了,这是本人也没想到的结果。Flutter 的状态管理插件实在太多,感觉要深挖,可以继续写上几十篇。只是,这样写,怕是自己不累,看客都累了!???授人以鱼不如授人以渔,本篇就专门对 Flutter 比较流行的状态管理插件做一个合集并附上对比分析和排行榜。大家可以结合对比数据和官方文档来在实际开发中选择。大家可以在评论区晒出自己用的状态管理插件和选择的理由,互相参考一下!
我们横向对比以数据说话,综合了 pub 的喜欢数(Likes)、流行度(Popularity)和得分(Pub Points),Gitbub的 Star 数、贡献者数量五个维度进行比对。各个参数说明如下:
为了统一对比尺度,我们统一按与本篇列出的管理插件同维度最大值进行比对,根据比值得出星级,共设置5颗星,比值与星级对应关系如下:
我们先看对比数据,再来做星级评比,状态管理插件清单的五项数据如下:
| 插件名称 | 喜欢数 | 流行度(%) | 得分 | 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 状态管理插件的排名?记得评论区晒出你正在用的状态管理插件哦!
我希望将Favorite模型添加到我的User和Link模型。业务逻辑用户可以有多个链接(即可以添加多个链接)用户可以收藏多个链接(他们自己的或其他用户的)一个链接可以被多个用户收藏,但只有一个所有者我对如何为这种关联建模以及在模型就位后如何创建用户收藏夹感到困惑?classUser 最佳答案 下面的数据模型怎么样:classUser:destroyhas_many:favorite_links,:through=>:favorites,:source=>:linkendclassLink:destroyhas_many:favor
在选择我想要运行操作的频率时,唯一的选项是“每天”、“每小时”和“每10分钟”。谢谢!我想为我的Rails3.1应用程序运行调度程序。 最佳答案 这不是一个优雅的解决方案,但您可以安排它每天运行,并在实际开始工作之前检查日期是否为当月的第一天。 关于ruby-如何每月在Heroku运行一次Scheduler插件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/8692687/
我对最新版本的Rails有疑问。我创建了一个新应用程序(railsnewMyProject),但我没有脚本/生成,只有脚本/rails,当我输入ruby./script/railsgeneratepluginmy_plugin"Couldnotfindgeneratorplugin.".你知道如何生成插件模板吗?没有这个命令可以创建插件吗?PS:我正在使用Rails3.2.1和ruby1.8.7[universal-darwin11.0] 最佳答案 随着Rails3.2.0的发布,插件生成器已经被移除。查看变更日志here.现在
Region是HBase数据管理的基本单位,region有一点像关系型数据的分区。region中存储这用户的真实数据,而为了管理这些数据,HBase使用了RegionSever来管理region。Region的结构hbaseregion的大小设置默认情况下,每个Table起初只有一个Region,随着数据的不断写入,Region会自动进行拆分。刚拆分时,两个子Region都位于当前的RegionServer,但处于负载均衡的考虑,HMaster有可能会将某个Region转移给其他的RegionServer。RegionSplit时机:当1个region中的某个Store下所有StoreFile
您认为可以作为插件很好地存在于您的Rails应用程序中必须实现的哪些行为?您过去曾搜索过哪些插件功能但找不到?哪些现有的Rails插件可以改进或扩展,如何改进或扩展? 最佳答案 我希望在管理界面中看到一个引擎插件,它提供了应用程序中所有模型的仪表板摘要,以及可配置的事件图表。 关于ruby-on-rails-您希望看到哪些Rails插件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questio
我们正在使用Vagrant进行部署,我们最终希望将此集群部署在Rackspace上。vagrant-rackspace插件是一个自然的选择,但它有一些错误,这些错误未包含在最新的0.1.1版本中(notablythatvagrantprovisiondoesn'twork)。我已经在我的personalfork中解决了这个问题通过合并其他人的工作来对存储库进行改造。是否可以从github安装vagrant插件?显而易见的事情没有奏效:[unix]$vagrantplugininstallvagrant-rackspace--plugin-sourcehttps://github.com
我正在使用Maruku,将Markdown(超集)转换为HTML,你知道我该怎么做才能从HTML转换为Markdown吗? 最佳答案 Google发现了一个名为reverse_markdown的ruby脚本.它似乎可以满足您的需求。 关于ruby-on-rails-我需要从HTML转到markdown,有什么建议吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/175162
前言我们习惯用idea编写、调试代码,在LeetCode上刷题时,如果能够在IDEA编写代码,并且做好代码管理,是一件事半功倍的事情。对于后续复习题目,做笔记也会非常便利。本文目的在于介绍LeetCodeEditor的使用,以及配置工具类,最终目录结构如下:note:放置笔记src:放置代码leetcode.editor.cn:插件LeetCodeEditor自动生成utils:自定义的工具包,可用于自动化输入测试用例,定义题目需要的类(结构体)out:运行测试时自动生成LeetCodeEditorGitHub:https://github.com/shuzijun/leetcode-edit
多年来,Perl一直是我首选的编程语言工具之一。Perl6语法看起来像是一个很棒的语言特性。我想知道是否有人开始为Ruby做这样的事情。 最佳答案 如果您想在Ruby中使用实际的Perl6语法,最好的选择是Cardinal,Parrot上的ruby编译器。它目前尚未完成并且非常缓慢,但我非常希望它最终成为一个可行的ruby实现。它目前大部分处于非事件状态,等待Parrot中的一些基础架构更改以支持改进的解析速度和其他功能。 关于regex-Ruby是否有类似于Perl6语法的插件
关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于StackOverflow来说是偏离主题的,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,describetheproblem以及迄今为止为解决该问题所做的工作。关闭9年前。Improvethisquestion我正在为Rails3/ActiveRecord项目寻找一个相对简单的状态机插件。我做了一些研究并提出了以下插件:转换:https://github.com/qoobaa/transitions从旧的ActiveRecord状态机库中提取