RxSwift入門概念

RxSwift是什么

RxSwif是ReactiveX的Swift版本,也就是一個函數(shù)式響應(yīng)編程的框架。對,就這一句話。想要知道他做什么的,我們先來了解一下觀察者模式。

觀察者模式

觀察者模式(Observer),定義了對象間的一種一對多的組合關(guān)系,以便一個對象的狀態(tài)發(fā)生變化時,所有依賴于它的對象都得到通知并自動刷新。完美的將觀察者和被觀察的對象分離開。舉個例子,用戶界面可以作為一個觀察者,業(yè)務(wù)數(shù)據(jù)是被觀察者,用戶界面觀察業(yè)務(wù)數(shù)據(jù)的變化,發(fā)現(xiàn)數(shù)據(jù)變化后,就顯示在界面上。

RxSwift做了什么

RxSwift把我們程序中每一個操作都看成一個事件,比如一個TextField中的文本改變,一個按鈕被點擊,或者一個網(wǎng)絡(luò)請求結(jié)束等,每一個事件源就可以看成一個管道,也就是sequence,比如TextField,當(dāng)我們改變里面的文本的時候,這個TextField就會不斷的發(fā)出事件,從他的這個sequence中不斷的流出,我們只需要監(jiān)聽這個sequence,每流出一個事件就做相應(yīng)的處理。同理,Button也是一個sequence,每點擊一次就流出一個事件。

Observable和Observer

Observable是被觀察者,Observer是觀察者。Observer(觀察者)訂閱(subscribe)Observable(被觀察者),觀察者就會受到被觀察者發(fā)出的通知事件。

DisposeBag

DisposeBag其實就相當(dāng)于iOS中的ARC,會在適當(dāng)?shù)臅r候銷毀觀察者,相當(dāng)于內(nèi)存管理者吧。

subscribe

subscribe是訂閱sequence發(fā)出的事件,比如next事件,error事件等。而subscribe(onNext:)是監(jiān)聽sequence發(fā)出的next事件中的element進行處理,他會忽略error和completed事件。相對應(yīng)的還有subscribe(onError:) 和 subscribe(onCompleted:)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 RxSwift入坑解讀-你所需要知道的各種概念 沸沸騰關(guān)注 2016.11.27 19:11*字...
    楓葉1234閱讀 2,944評論 0 2
  • //PublishSubject -> 會發(fā)送訂閱者從訂閱之后的事件序列 PublishSubjectlet se...
    andrewJN閱讀 1,692評論 0 3
  • 首先,何為RxSwift? RxSwift是ReactiveX的Swift版本,一個響應(yīng)式變成框架。傳送門 開始之...
    cocoawork丶閱讀 558評論 0 3
  • RxSwift把我們程序中每一個操作都看成一個事件,比如一個TextField中的文本改變,一個按鈕被點擊,或者一...
    水落斜陽閱讀 898評論 0 2
  • 今天是周日,也是參加讀寫營打卡任務(wù)的第五天,我想把這幾天的收獲記錄一下作為今天的打卡作業(yè)。第一次打卡是在8月31日...
    入定閱讀 180評論 0 0

友情鏈接更多精彩內(nèi)容