美文网首页
函数响应式编程之RxSwift

函数响应式编程之RxSwift

作者: ello_u | 来源:发表于2019-07-22 16:22 被阅读0次

    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的重要性:
    • Swift是一门静态语言,它没有像OC一样的运行时状态来发送、转发等操作,而RxSwift就是可以弥补这一语言特性。
    • RxSwift的函数响应式编程思想是必须要掌握的。

    RxSwift的三步曲

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


      三步曲.png

    相关文章

      网友评论

          本文标题:函数响应式编程之RxSwift

          本文链接:https://www.haomeiwen.com/subject/dudmlctx.html