RxSwift 响应式编程详解(001)
一、Rx是什么?
-  
  Rx是ReactiveX的缩写,是一个用观察者模式开发异步和基于事件编程的库。
-  
  Rx可以简化异步编程方法,并提供更优雅更安全的数据绑定。让我们可以时刻有序地响应新的数据并且处理。
-  
  Rx本身可以说是一种跨平台的标准,它有自己的社区论坛,不管是web还是移动开发,都能用Rx的思维和方法来完成你的工作。
-  
  作为一种跨平台标准,目前已经有基于Rx开发了许多不同语言的库,有 RxPHP, RxJava, RxKotlin,Rx.NET,RxSwift...,在此我们重点讲解的是RxSwift响应式编程。
-  
  在这些不同语言的 Rx库中,他们都有着相同的API接口。因此即使在不同语言间使用Rx的方法,使用规则和接口调用的思维模式基本一样。
-  
  响应更加及时:对UI界面事件操作以及数据信息的获取,即属性值信息发生的改变,能够立即作出响应。 
-  
  编程更加简洁:对于以前Even事件传递和代理方法做了统一处理,如 KVO 、 Timer 、 Dlelgate 、 targer-action 、 notification 等。 
-  
  优雅绑定数据:实现数据的优雅绑定,特别是结合 MVVM 设计模式进行编程开发,那简直是完美结合。 
-  
  编程更加安全:不用担心内存问题,他都做了统一销毁处理。例如以前方法创建计时器 Timer 还得在不用时做销毁动作,使用 RxSwift 后不用担心这种问题,它统一进行 DisposeBag() 的销毁处理。 
 
- 手动安装: - 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 : 不包含任何 Cocoa或者UI方面的类。
-  
  RxCocoa :是基于 RxSwift针对于iOS开发的一个库,它通过Extension的方法给原生的比如UI控件添加了Rx的特性,使得我们更容易订阅和响应这些控件的事件。
