Flutter中Redux框架使用简介
本文最后更新于:3 个月前
Redux是一种状态容器,提供一种状态管理的机制。在React-Native和Flutter中,都有对应的集成方法。
在
Flutter中,官方提供了基础的状态管理的控件InheritedWidget,所以本质上flutter_redux只是对InheritedWidget的封装
一、集成
pubspec.yaml中引入需要引入对应的插件包,具体最新的版本,需要在官方网站站查询
1 | |
调用flutter packages get命令加载插件
二、简单介绍
StoreReducerState
Store负责保存各种方法和属性的实例,其中主要参数reducer、initialState和middleware其中
reducer是绑定数据和操作的类,包含两个属性,state和action,需要在reducer中判断每个action具体对应到什么参数操作Store实例创建完成后,需要加入到widgets树中去,需要使用StoreProvider类,Store实例必须要加入到widgets树的最顶层,所以,StoreProvider要比整个APP的入口MaterialApp更高,仅次于runApp的方法在任意一层
widget中使用快捷的of方法,即可从context中获取到Store实例对象redux_thunk插件提供从接口请求数据的绑定操作,将thunkMiddleware值传入Store的middleware参数,通过store.dispatch方法可以调用绑定的数据请求的方法,数据请求的方法需要有返回值类型ThunkAction<State>,此类型为定义的别名,1
typedef dynamic ThunkAction<State>(Store<State> store);所以直接
Store对象,并在方法中实现具体的请求参数等逻辑dispatch触发数据请求后,还需要继续执行dispatch操作,继续触发action,通过判断action类型来执行具体的数据保存操作,全部执行完成后,数据会保存在State中,此时redux会触发数据变化的通知,重构StoreConnector中builder的实现
三、示例代码
https://github.com/AnderGH/flutter_redux_demo/blob/master/demo_redux/lib/main.dart