初识RxSwift及使用教程 韩俊强的博客

简介: 什么是RxSwift? RxSwift是Swift函数响应式编程的一个开源库,由Github的ReactiveX组织开发、维护 其他语言像C#, Java 和 JS 也有,Rx.

这里写图片描述

什么是RxSwift?

  • RxSwift是Swift函数响应式编程的一个开源库,由Github的ReactiveX组织开发、维护

  • 其他语言像C#, Java 和 JS 也有,Rx.Net、RxJava、RxJS

  • RxSwift的目的是让让数据/事件流和异步任务能够更方便的序列化处理,能够使用Swift进行响应式编程

  • 函数式响应编程?

  • RxSwift做了什么?

观察者模式

  • 什么KVO,通知, 甚至代理都是观察者模式,在设计模式中他可是一个重中之重的设计模式
  • 比如一个宝宝在睡觉,爸爸妈妈,爷爷奶奶总不能在那边一只看着吧?那样子太累了。他们该做啥事就做啥事呗,只要听到宝宝的哭声,他们就给宝宝喂奶就行了。这就是一个典型的观察者模式。
  • 宝宝是被观察者,爸爸妈妈等是观察者也称作订阅者,只要被观察者发出了某些事件比如宝宝哭声、叫声都是一个事件,通知到订阅者,订阅者们就可以做相应的处理工作

  • 在我们iOS开发中, 很多的事件监听都是通过观察者设计模式的

RxSwift做了什么

  • RxSwift把我们程序中每一个操作都看成一个事件

  • 比如一个TextField中的文本改变,一个按钮被点击,或者一个网络请求结束等,每一个事件源就可以看成一个管道,也就是sequence

  • 比如TextField,当我们改变里面的文本的时候,这个TextField就会不断的发出事件,从他的这个sequence中不断的流出,我们只需要监听这个sequence,每流出一个事件就做相应的处理。

  • 同理,Button也是一个sequence,每点击一次就流出一个事件。

Button事件流

理解Observable&Observer

理解Observable&Observer

RxSwift的优点

  • Composable 可组合,在设计模式中有一种模式叫做组合模式,你可以方便的用不同的组合实现不同的类
  • Reusable 代码可重用,原因很简单,对应RxSwift,就是一堆Obserable
  • Declarative 响应式的,因为状态不可变,只有数据变化
  • Understandable and concise 简洁,容易理解。
  • Stable 稳定,因为RxSwift写出的代码,单元测试时分方便
  • Less stateful “无”状态性,因为对于响应式编程,你的应用程序就是一堆数据流
  • Without leaks 没有泄漏,因为资源管理非常简单

使用心得

  • 时刻牢记,使用RxSwift,尽量把所有的任务(可以理解为方法)抽象成Obserable(序列)和Obserable创建者,监听者

  • 能用数据绑定的(bindTo和Driver)的就不要手动绑定

  • 一定要熟练RxSwift提供的操作符,要会自定义操作符

iOS开发者交流群:①446310206 ②446310206

代码地址: 加入我们学习

目录
相关文章
|
9月前
|
Web App开发 存储 机器学习/深度学习
欢迎使用CSDN-markdown编辑器
欢迎使用CSDN-markdown编辑器
58 0
|
9月前
|
人工智能 大数据 Java
面向萌新的技术博客入门指南
面向萌新的技术博客入门指南
104 0
|
9月前
|
Linux Python
用Python实现一个CSDN自动三连工具
用Python实现一个CSDN自动三连工具
105 0
|
机器学习/深度学习 uml
如何使用CSDN的Markdown编辑器?
如何使用CSDN的Markdown编辑器?
82 1
|
uml
CSDN_MARKDOWN编辑器 最新使用方法指南
CSDN_MARKDOWN编辑器 最新使用方法指南
115 0
|
JavaScript 安全 Linux
Hugo博客教程(一)
Hugo博客教程(一)
523 0
CSDN的MarkDown编辑器怎么使用
CSDN的MarkDown编辑器怎么使用
99 0
|
弹性计算 人工智能 大数据
我的博客网站初体验
利用博客网站编写和呈现新闻,融合多种媒介,综合性的呈现信息,既满足了当下人们的阅读习惯,也丰富了内容的呈现形式,让一个事件、一个故事变得更加立体、丰富。利用网站编写融合新闻将成为我创建云场景、构建云服务的起点,未来我会充分利用博文网站平台,结合自己的专业讲好生活中的好故事。另外,继续探索新的云服务领域,例如AI、编程、大数据等,文科生也可以“牛”起来。
|
缓存 JavaScript 前端开发
【Hexo】手把手教你搭建属于你自己的博客
【Hexo】手把手教你搭建属于你自己的博客
189 0
【Hexo】手把手教你搭建属于你自己的博客
|
JavaScript
【开源博客】三个步骤学会Hexo快速生成精美博客!
最近学委跟小伙伴搞了一个py4ever 开源站点,使用的就是hexo。 下面是站点信息:py4ever开源站
234 0
【开源博客】三个步骤学会Hexo快速生成精美博客!