前言
一路下來,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 狀態管理插件的排名?記得評論區曬出你正在用的狀態管理插件哦!