android redux 架构,Redux 在 Android 中的应用

背景

参考前端学习系列2:从移动端的角度学习与分析Redux一文,在React中Redux框架被用来将展示与数据分离以及管理状态的变化,扩展性非常好,而且便于测试,那我们不禁想到,能不能把这样一套框架移植到Android原生开发中来。

Redux核心框架

1aaf80ec9f1e72944965823061dd3ac8.png

上图展示了Redux的数据流向:

当用户操作View时可能引发数据的变化,这时候会经由ActionCreator产生特定的Action传递给Store;

Store在接收到Action后,将其分发给Reducer进行处理,而Reducer内部会根据Action更新对应的数据,产生新的State返回给Store;

Store最终将更新的状态State通知给View,改变UI刷新页面

TODO应用

基础功能实现过程

我们先看下基于Redux框架如何完成添加TODO item以及修改item状态这些基本功能:

定义状态State

在TODO应用中我们首先需要保存一个TODO item的信息列表,因此state应该对应的是List这样一种数据类型

定义交互的Actions

·每一个Action应该包含两部分内容,一部分是Action的类型标识,另一个部分传递的是附加的数据。

public class Action { public final String type; public final Object value; public Action(String type, Object value) {...}

}

具体到本应用,我们需要创建添加和修改item这两种操作对应的Action,为了保证代码的复用和整洁,通常Action的创建要依赖ActionCreator。

public class TodoActions{ public static final String ADD_ITEM = "ADD_ITEM"; public static final String CHANGE_STATE = "CHANGE_STATE"; public static Action addItem(TodoItem item){ return new Action(ADD_ITEM, item);

} public static Action changeState(long id, boolean isChecked){ return new Action(CHANGE_STATE, Pair.create(id, isChecked));

}

}

创建Reducer

在定义好Actions后,我们需要知道如何去处理它们,也就是实现Reducer接口

public interface Reducer{ State reduce(State state, Action action);

}

reduce方法接收两个参数,一个是当前状态&

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值