前言
一路下来,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 状态管理插件的排名?记得评论区晒出你正在用的状态管理插件哦!