RxSwift初探

269 阅读1分钟

简介

RxSwift 是 Rx 的 Swift 版本,KVO,异步操作和流全部被统一成抽象序列。这就是为什么Rx会如此简单,优雅和强大。

RxSwift的优势:

  • 复合
  • 复用:复用性增强,代码量降低
  • 清晰:因为声明都是不可变更的,所以代码函数式编程可读性强
  • 易用:容易理解,同时抽象了异步编程,统一代码风格
  • 稳定:RxSwift完全通过了单元测试
  • 代码高端:代码的层次明显比原生高了很多

RxSwift 的基本用法

基本用法示范:

  • KVO
  • Button
  • Textfield
  • ScrollView
  • 手势
  • 通知
  • 定时器
  • 网络处理

KVO

普通使用KVO

使用KVO三要素:

  • 添加要观察的对象属性
  • 添加观察者回调方法
  • 销毁观察者

image.png

image.png

这样即可使用KVO来观察name属性的变化

image.png

使用RxSwift实现

image.png

image.png

按钮点击

常规实现

image.png

使用RxSwift实现

image.png

textfield

常规实现

需要实现代理方法

image.png

使用RxSwift实现

image.png

对 textfield.text 和 button.title 进行绑定

image.png

但是这个绑定是单向的,如果改变button.title并不会影响textfield.text

滑动scrollView根据偏移量改变背景颜色

常规方法

同样采用KVO来监听偏移量的变化从而更改背景颜色

image.png

使用RxSwift实现

image.png

给Label添加手势

常规方法

image.png

使用RxSwift实现

image.png

通知

常规方法

image.png

使用RxSwift实现

image.png

定时器

常规方法

image.png

使用RxSwift实现

image.png

网络请求

常规方法

image.png

使用RxSwift实现

image.png