专栏名称: 移动开发前线
专注于分享移动开发前沿和一线技术。
目录
相关文章推荐
山东政府网  ·  3月13日省政府常务会研究了这几件大事! ·  昨天  
山东政府网  ·  3月13日省政府常务会研究了这几件大事! ·  昨天  
前端早读课  ·  【第3472期】资源预加载可能会拖慢网站速度 ·  2 天前  
前端大全  ·  裁员了,很严重,大家做好准备吧! ·  3 天前  
51好读  ›  专栏  ›  移动开发前线

ReactorKit:iOS单向数据流架构

移动开发前线  · 公众号  · 前端  · 2017-05-11 20:23

正文

版权声明
作者:谢丽
本文为 InfoQ 原创首发,未经允许禁止转载。

ReactorKit 是一个面向响应式单向 Swift 应用程序架构的框架,结合了 Flux 和响应式编程。其中,Flux 是 Facebook 用来构建客户端 Web 应用程序的应用架构。它借助单向数据流完善了 React 的可组合视图组件。它更多的是一种模式,而不是一种传统的框架。

ReactorKit Github 地址:

https://github.com/ReactorKit/ReactorKit

ReactorKit 的作者是韩国 iOS 开发者 Suyeol Jeon,他还开发了受欢迎的 Swift 语法糖 Then:

https://github.com/devxoul/Then

ReactorKit 使用 Swift 3 编写,基于 RxSwift 之上开发,也是 RxSwift 生态的一部分,你可以到 RxSwift 的 Slack 里参与 ReactorKit 的讨论。

在 ReactorKit 框架中,用户动作和视图状态都是通过可观测的流传递给每一层。这些流是单向的,因此,视图只能发出动作,而响应者只能发出状态,如下图所示:

按照设计,ReactorKit 旨在实现以下三个目标:

  • 可测试性 :ReactorKit 的第一个目标是将业务逻辑从视图分离,响应者不依赖于任何视图,可单独测试;

  • 从小做起 :ReactorKit 不要求整个应用程序遵循统一的架构,开发人员可以只在一个具体的视图中使用它,在已有的项目中使用 ReactorKit 也无需重写任何东西;

  • 减少输入 :对于简单的东西,ReactorKit 注重避免复杂的代码,与其他架构相比,它需要的代码更少。

ReactorKit 主要包含以下三个层次:

  • 视图 :视图展示数据。一个视图控制器和一个单元格被视为一个视图。视图将用户输入绑定到动作流,将视图状态绑定到每个 UI 组件。视图层不包含业务逻辑。视图只负责定义如何映射动作流和状态流。

  • 响应者 :响应者是一个独立的层,负责管理视图状态。响应者最重要的作用是从视图分离出控制流。每个视图都有相应的响应者,并将逻辑处理委托给响应者。响应者不依赖视图,很容易测试。







请到「今天看啥」查看全文