【移动应用开发技术】详解Android中实现Redux方法_第1页
【移动应用开发技术】详解Android中实现Redux方法_第2页
【移动应用开发技术】详解Android中实现Redux方法_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

【移动应用开发技术】详解Android中实现Redux方法

Redux是一个用于应用程序状态管理的开源JavaScript库,其核心是通过可管理和控制的状态来描述一个系统。这意味着其思想其实是可以应用于任何类型应用的开发的,包括移动应用。Redux架构基于一个严格的单向数据流,应用中的所有数据都是通过组件在一个方向上流动。Redux希望确保应用的视图是根据确定的状态来呈现的。意思就是,在任何时间点,你应用的状态总是确定、有效的,并且可以转换到另一个可预测和有效的状态。而UI将根据所处的状态来进行呈现。关于Redux在网上已经有很多相关的资料,这里就只介绍下Redux核心的三个组件:1.Store:保存应用的状态并提供一些帮助方法来存取状态,分发状态以及注册监听。2.Actions:简单说Actions就是事件,包含要传递给store的信息,表明我们希望怎样改变应用的状态。比如,定义如下的一个action:由store来进行分发:3.Reducers:进行状态的转变。类似这样:介绍完核心组件,下面来看一下它们是怎么组合到一起的:Redux的流程很简单,你的应用根据当前状态呈现UI,用户的交互触发action,并交给reducer来更新状态。最近,作者在一个还挺大的项目上试了下Redux架构,所以这里就分享下从中总结的一些经验。1.应用里最好不要有多个store针对不同模块有不同的store似乎是个不错的主意,但从上面的图可以看到每个store和其数据流是一个闭环系统,这就使得不同store之间的状态难以同步。这样你就通常需要在一个状态的变更响应中去进行另一个store的action分发,而这很容易造成无限循环。另一个原因是多store的架构是非常僵化的,难以灵活的改动。更好的做法是维护一个包含多个子状态的全局应用状态,由一个store来表示:2.保持应用的状态层级尽可能少因为Redux中state是不可变的,因此深层次嵌套的state会产生很多的样板代码,并且难以更新。比如,考虑下面的一组数据模型实例化和更新状态对象:即使是用了Kotlin的copy机制,更新深层嵌套的属性(比如上面的Article)也是非常单调乏味的:3.Reducers只是纯函数Reduce的作用只是处理action并返回新的state到store的,需要保证相同的输入总会得到一样的输出。Reduce自身不应该有状态和执行任何额外工作,而只是做状态转换。如果你需要响应某个action,并执行一些操作,那应该考虑使用Middleware。4.只用KotlinRedux很大部分受到Flux的启发,而关于Flux最常见的抱怨就是需要写一大堆的样板代码。而所选择的语言很大程度会决定你管理样板代码的便利性。Kotlin中类似dataclass,when语句之类的特性,能让你的代码清晰很多。例如,在Reducer中匹配action时,可以选择用instanceof方法实现。当action很多时,这种写法就很痛苦了。如果用Kotlin就是这样的:结论虽然,Redux主要是被用于Web应用开发,但其思想我们还是可以学习并引入到A

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论