RxSwift笔记 - 简单介绍

RxSwift

RxSwift 是 ReactiveX 家族的重要一员, ReactiveXReactive Extensions 的缩写,一般简写为Rx

ReactiveX 官方给Rx的定义是,Rx是一个使用可观察数据流进行异步编程的编程接口。

ReactiveX结合了观察者模式、迭代器模式和函数式编程的精华。

ReactiveX 不仅仅是一个编程接口,它是一种编程思想的突破,它影响了许多其它的程序库和框架以及编程语言。它拓展了观察者模式,使你能够自由组合多个异步事件,而不需要去关心线程,同步,线程安全,并发数据以及I/O阻塞


Rx家族:

  • Java: RxJava
  • JavaScript: RxJS
  • C#: Rx.NET
  • C#(Unity): UniRx
  • Scala: RxScala
  • Clojure: RxClojure
  • C++: RxCpp
  • Lua: RxLua
  • Ruby: Rx.rb
  • Python: RxPY
  • Go: RxGo
  • Groovy: RxGroovy
  • JRuby: RxJRuby
  • Kotlin: RxKotlin
  • Swift: RxSwift
  • PHP: RxPHP
  • Elixir: reaxive
  • Dart: RxDart

ReactiveX for platforms and frameworks

  • RxNetty (Java 平台)
  • RxAndroid (安卓平台)
  • RxCocoa (iOS 平台)

Rx 模式

使用观察者模式

  • 创建:Rx可以方便的创建事件流和数据流
  • 组合:Rx使用查询式的操作符组合和变换数据流
  • 监听:Rx可以订阅任何可观察的数据流并执行操作

简化代码

  • 函数式风格:对可观察数据流使用无副作用的输入输出函数,避免了程序里错综复杂的状态
  • 简化代码:Rx的操作符通通常可以将复杂的难题简化为很少的几行代码
  • 异步错误处理:传统的try/catch没办法处理异步计算,Rx提供了合适的错误处理机制
  • 轻松使用并发:RxObservablesSchedulers让开发者可以摆脱底层的线程同步和各种并发问题

RxSwift

RxSwiftRxSwift 语言开发的一门函数响应式编程语言, 它可以代替iOS系统的 Target Action / 代理 / 闭包 / 通知 / KVO …..
同时还提供网络、数据绑定、UI事件处理、UI的展示和更新、多线程……
RxSwift笔记 - 简单介绍_第1张图片

其中 RxCocoa 是对 iOS 系统 Cocoa 元素加的 Extension, 使系统自带控件支持 Rx 属性。

例如:UISwitch with Rx
RxSwift笔记 - 简单介绍_第2张图片

RxSwift 优点

RxSwiftReactiveX 的一员, 自然包含 Rx 的属性及优点

  • 简洁 - Rx 简化了代码,使用较少的代码即可实现相同的功能
  • 清晰 - 声明都是不可变更的, 而且代码高内聚, 代码易读,易维护
  • 易用 - 它抽象的了异步编程,使我们统一了代码风格
  • 稳定 - Rx 是完全通过单元测试的

安装

Github 官方文档:RxSwift Installing guide


RxSwift 官方社区

RxSwift 官方社区

RxSwift社区非常友好、开放, 热衷于讨论模式和常见的技术, 旨在帮助大家互相学习成长。

社区提供了很多的用 RxSwift 实现的项目和 Swift 的延展,以及 RxSwift 库。

RxSwift笔记 - 简单介绍_第3张图片

你可能感兴趣的:(iOS,Swift,RxSwift笔记)