函数响应式编程之RxSwift

2019-07-22  本文已影响0人  ello_u

RxSwift是用Swift语言写的ReactiveX系列框架之一,其核心就是FRP(Functional Reactive Programming)即函数响应式编程。其优点就是可以简化异步编程方法,并提供更优雅的数据绑定。让我们可以时刻响应新的数据同时顺序地处理它们。

函数响应式编程

分为函数式和响应式,如图:


分解图

函数式

函数简单的说就是从A(定义域)到B(值域)的一个映射过程。
所以函数式编程应该是一个从入参到返回值的黑盒子,我们只需调用对应的方法,拿到想要的结果。

eg:y=f(x) y的值随x值的变化而变化。当然,x和y也可能是一个函数

函数式编程抽取了很多常用操作,作为高阶函数,比如map,filter,reduced.通过这些函数使我们的代码更简洁,可读性更高。
数组过滤

[1, 2, 3, 4, 5, 6].filter{ $0 % 2 == 0 }

数组元素增值

[1, 2, 3, 4, 5, 6].map{ $0 * 5 }

数组元素和

[1, 2, 3, 4, 5, 6].reduce(0, +)

响应式

在程序开发中,a=b+c;赋值之后,b或者c的值变化后,a的值不会跟着变化。响应式编程目标就是,如果b或者c的数值发生变化,a的数值会同时发生变化

在响应式编程当中,a=b+c声明的是一种绑定关系。a与b、c绑定起来了,所以b、c的变化会影响a,这也就是所谓【变化传播】。

响应式编程是一种基于异步数据流概念的编程模式。数据流就像一条河:它可以被观测,被过滤,被操作,或者为新的消费者与另外一条流合并为一条新的流。

响应式编程的一个关键概念是事件。事件可以被等待,可以触发过程,也可以触发其它事件。

今天,响应式编程最通用的一个场景是UI:我们的App必须做出对网络调用、用户触摸输入和系统弹框的响应。传统的方式我们需要通过设置代理,监听来实现变化响应。在RxSwift中我们只需要通过.rx调用对应的函数即可


RxSwift在基础控件中的使用.png
RxSwift的重要性:

RxSwift的三步曲

  1. 序列的创建
    通过Observable.create 来创建一个可被观察的的序列
  2. 订阅、消毁
    通过.subscribe .addDisposableTo(disposeBag)来订阅、销毁
  3. 发送信号
    .onNext() 发送信号


    三步曲.png
上一篇下一篇

猜你喜欢

热点阅读