Flutter中最常用的状态管理器:provider
您好,我是沧沧凉凉,是一名前端开发者,目前在掘金、知乎以及个人博客上同步发表一些学习前端时遇到的趣事和知识,欢迎关注。
状态管理是Flutter中一个非常重要的问题,因为在平时的开发中,我们的大多数数据都应该是时刻会进行改变的,如何在组件中拿到这些需要使用到的数据就是一个非常重要的话题,对于使用过React或者Vue的人来说,肯定会知道Redux和Vuex,或者是React中的Context,当然,在Flutter中也有Redux,不过在本文中还是优先学习类似于React中的Context的状态管理方式provider。
不过就我个人的体验感受来讲,provider的体验相当不错,我觉得比Redux更简单易用,可能也正是如此,所以provider的使用量远远高于Redux。
主要API
provider的API还是有那么10来个,但是我个人觉得最核心的API就只有3个:
- Provider
- ChangeNotifierProvider
- Consumer
Provider
Providers不仅允许暴露出一个值,也可以创建/监听/销毁它。
但是通过Provider这个API暴露出的状态是无法在状态中的值发生改变的时候更新界面的。
ChangeNotifierProvider
跟上面的Provider非常相似,唯一不同的是使用它暴露的值可以刷新界面。
Consumer
基本上掌握了上面的3个内容,就可以正常的开始使用provider的管理应用中的状态了,但其实provider还提供了更多的高级内容。
MultiProvider
也是一个非常有用的API,当你的应用非常庞大的时候,需要注入非常多的状态,而使用Provider进行注入时就会出现层层嵌套的情况,这就大大降低了代码的可读性,于是就有了这个API。
上面的代码等同于使用MultiProvider后
最后
使用provider几乎就可以解决应用中的所有状态管理问题,个人觉得provider还是非常好用的,相对于Redux这种状态管理器provider显得是非常易用的。
Flutter中的状态管理器还有非常多,这种东西可以根据自己的喜好进行选择。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!