Skip to content

AnderGH/GH_Flutter_ReduxDemo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 

Repository files navigation

Redux是一种状态容器,提供一种状态管理的机制。在React-NativeFlutter中,都有对应的集成方法。

Flutter中,官方提供了基础的状态管理的控件InheritedWidget,所以本质上flutter_redux只是对InheritedWidget的封装

一、集成

pubspec.yaml中引入需要引入对应的插件包,具体最新的版本,需要在官方网站站查询

dependencies:
  flutter:
    sdk: flutter

  redux: ^4.0.0
  flutter_redux: ^0.6.0
  redux_thunk: ^0.3.0

调用flutter packages get命令加载插件

二、简单介绍

  • Store
  • Reducer
  • State
  1. Store负责保存各种方法和属性的实例,其中主要参数reducerinitialStatemiddleware

  2. 其中reducer是绑定数据和操作的类,包含两个属性,stateaction,需要在reducer中判断每个action具体对应到什么参数操作

  3. Store实例创建完成后,需要加入到widgets树中去,需要使用StoreProvider类,Store实例必须要加入到widgets树的最顶层,所以,StoreProvider要比整个APP的入口MaterialApp更高,仅次于runApp的方法

  4. 在任意一层widget中使用快捷的of方法,即可从context中获取到Store实例对象

  5. redux_thunk插件提供从接口请求数据的绑定操作,将thunkMiddleware值传入Storemiddleware参数,通过store.dispatch方法可以调用绑定的数据请求的方法,数据请求的方法需要有返回值类型ThunkAction<State>,此类型为定义的别名,

typedef dynamic ThunkAction<State>(Store<State> store);

所以直接Store对象,并在方法中实现具体的请求参数等逻辑

  1. dispatch触发数据请求后,还需要继续执行dispatch操作,继续触发action,通过判断action类型来执行具体的数据保存操作,全部执行完成后,数据会保存在State中,此时redux会触发数据变化的通知,重构StoreConnectorbuilder的实现

三、示例代码

https://github.com/AnderGH/flutter_redux_demo/blob/master/demo_redux/lib/main.dart

About

flutter_redux框架测试demo

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published