vlambda博客
学习文章列表

RxSwift 响应式编程详解(001)

RxSwift 响应式编程 - 《认识 RxSwift》

一、Rx是什么?

  • Rx  是  ReactiveX  的缩写,是一个用观察者模式开发异步基于事件编程的库。
  • Rx  可以简化异步编程方法,并提供更优雅更安全的数据绑定。让我们可以时刻有序地响应新的数据并且处理。
  • Rx  本身可以说是一种跨平台的标准,它有自己的社区论坛,不管是 web  还是移动开发,都能用  Rx  的思维和方法来完成你的工作。
  • 作为一种跨平台标准,目前已经有基于Rx开发了许多不同语言的库,有  RxPHP, RxJava, RxKotlin, Rx.NET,RxSwift... ,在此我们重点讲解的是 RxSwift 响应式编程
  • 在这些不同语言的  Rx  库中,他们都有着相同的  API 接口。因此即使在不同语言间使用 Rx 的方法,使用规则和接口调用的思维模式基本一样。


二、RxSwift有什么作用?
  • 响应更加及时:对UI界面事件操作以及数据信息的获取,即属性值信息发生的改变,能够立即作出响应。
  • 编程更加简洁:对于以前Even事件传递和代理方法做了统一处理,如 KVO Timer Dlelgate targer-action notification 等。
  • 优雅绑定数据:实现数据的优雅绑定,特别是结合 MVVM 设计模式进行编程开发,那简直是完美结合。
  • 编程更加安全:不用担心内存问题,他都做了统一销毁处理。例如以前方法创建计时器 Timer 还得在不用时做销毁动作,使用 RxSwift 后不用担心这种问题,它统一进行 DisposeBag() 的销毁处理。

三、如何安装配置RxSwift?
  • 手动安装:

    1、在 GitHub地址下载: https://github.com/ReactiveX/RxSwift
    2、将源包中“ Rx.xcodeproj”拖拽到你的工程目录中;
    3、添加 RxSwift.framework RxCocoa.framework  
  • Cocoapod安装:

  •    
         
         
       
    # Podfile
    use_frameworks!

    target 'YOUR_TARGET_NAME' do
    pod 'RxSwift' , '~> 5'
    pod 'RxCocoa' , '~> 5'
    end

    # RxTest and RxBlocking make the most sense in the context of unit/integration tests
    target 'YOUR_TESTING_TARGET' do
    pod 'RxBlocking' , '~> 5'
    pod 'RxTest' , '~> 5'
    end
  • Carthage安装:

       
         
         
       
    github "ReactiveX/RxSwift" ~> 5.0

  • Package Manager 安装

  • // swift-tools-version:5.0

    import PackageDescription

    let package = Package(
    name: "RxTestProject",
    dependencies: [
    .package(url: "https://github.com/ReactiveX/RxSwift.git", from: "5.0.0")
    ],
    targets: [
    .target(name: "RxTestProject", dependencies: ["RxSwift", "RxCocoa"])
    ]
    )

四、RxSwift和RxCocoa?
  • RxSwift : 不包含任何  Cocoa  或者  UI 方面的类。
  • RxCocoa :是基于  RxSwift 针对于  iOS 开发的一个库,它通过  Extension  的方法给原生的比如  UI   控件添加了  Rx 的特性,使得我们更容易订阅和响应这些控件的事件。

⬇️ 关注 【疯狂1024】⬇️