岛上码农@公众号同名

V1

2022/01/17阅读:49主题:橙心

Flutter 状态管理文章合集

前言

从筹划写Flutter 的状态管理开始,有预期会写很多篇,这是Flutter 开发的最为核心部分。统计了一下,2个多月,一共写了50来篇状态管理的文章了。本篇来对这些状态管理的文章进行一次汇总,方便大家需要时可以直接从本篇快速找到对应的文章。欢迎评论区交流,为了节省时间不迷路,强烈建议收藏!

基础原理篇

基础篇主要是介绍了状态管理的一些背景知识和实现机制,具体篇章如下:

Provider 系列

Provider是官方推荐的状态管理插件,也是最受欢迎的状态管理插件之一,其机制还是利用了 InheritedWidget 实现状态管理在组件树中共享。相关篇章如下:

Redux 系列

Redux 实际上是仿前端 Redux 库改造成了 flutter_redux 插件,借用了 Redux 的理念(见下图)。 image.png 通过 Redux 可以实现业务逻辑和界面的完全分离,具有更低的耦合度。Redux 系列的文章如下:

MobX

MobX 也是来源于 Web 端的响应式状态管理库,在 js 端是非常流行的(Github 超过24k 的 Star)。整个思想和 React 有些类似,也是通过调度Action 来完成状态对象的更新,然后视图作为状态对象的监听者会被刷新。 image.png MobX 的一个很大的优势是具有代码生成器,状态对象和更新动作都可以通过注解完成,从而简化代码的编写。配合依赖注入容器(如 GetIt)可以实现状态对象多个页面共享。MobX 的相关篇章如下:

GetX

GetX 是当前最流行的状态管理插件之一,由于其丰富的功能(不仅仅是状态管理),简单易用的接口使得很多开发者使用它作为项目的状态管理工具。关于GetX,我们写的篇幅有点多,如下所示:

BLoC

BLoC 全称为Business Logic Component,翻译过来即业务逻辑单元。从名称上看就知道主要是聚集业务。BLoX 是基于 Stream 实现的,整个思路其实和其他响应式的查不多,都是分成了状态更新动作,状态对象,以及通知状态依赖界面刷新。 值得一提的是,flutter_bloc 中直接复用了 Provider 的大量代码,使用方式也和 Provider 很类似,项目的发起者也是 Provider 的主要贡献者。 image.png BLoC 广受欢迎的一个重要因素是其理念更有助于设计合理的应用架构,关于 BLoC 的文章如下所示:

总结

Flutter 作为一个新生事物,从它的状态管理插件之多也可以看出来,越来越多的开发者参与到了 Flutter 的开源社区中来,贡献了很多优质的插件。这是一个好事情,但也会带来甜蜜的烦恼 —— 这么多的状态管理插件该如何选择?下一篇我们将通过数据分析来对 Flutter 中比较流行的插件做一个横向对比。

分类:

移动端开发

标签:

移动端开发

作者介绍

岛上码农@公众号同名
V1