日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

[译]使用MVI打造响应式APP(八):导航

發(fā)布時(shí)間:2023/12/8 HTML 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [译]使用MVI打造响应式APP(八):导航 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

原文:REACTIVE APPS WITH MODEL-VIEW-INTENT - PART 8 - NAVIGATION
作者:Hannes Dorfmann
譯者:卻把清梅嗅

在上一篇博客中,我們探討了協(xié)調(diào)模式是如何在Android中應(yīng)用的。這次我想展示如何在Model-View-Intent中使用它。

如果您還不知道協(xié)調(diào)器模式是什么,我強(qiáng)烈建議您回過頭來閱讀上文內(nèi)容。

在MVI中應(yīng)用此模式與MVVM或MVP沒有太大區(qū)別:我們將lambda作為導(dǎo)航的回調(diào)傳遞給我們的MviBasePresenter。有趣的是我們?nèi)绾卧跔顟B(tài)驅(qū)動(dòng)的架構(gòu)中觸發(fā)這些回調(diào)?我們來看一個(gè)具體的例子:

class FooPresenter(private var navigationCallback: ( () -> Unit )? ) : MviBasePresenter<FooView> { lateinit var disposable : Disposableoverride fun bindIntents(){val intent1 = ...val intent2 = ...val intents = Observable.merge(intent1, intent2)val state = intents.switchMap { ... }// 這里就是有趣的部分val sharedState = state.share()disposable = sharedState.filter{ state ->state is State.Foo}.subscribe { navigationCallback!!() }subscribeViewState(sharedState, FooView::render)}override fun unbindIntents(){disposable.dispose() // disposable 導(dǎo)航navigationCallback = null // 避免內(nèi)存泄漏} }

其思想是:通過RxJava的 share() 操作符,我們對(duì)通常用來對(duì)View層渲染狀態(tài)的Observable進(jìn)行復(fù)用,再加上通過與 .filter() 操作符的組合使用,達(dá)到能夠監(jiān)聽到確定的狀態(tài),這之后,當(dāng)我們觀察到該狀態(tài)時(shí),觸發(fā)對(duì)應(yīng)的導(dǎo)航操作,然后協(xié)調(diào)器模式就像我之前的博客文章中描述的那樣進(jìn)行工作。


系列目錄

《使用MVI打造響應(yīng)式APP》原文

  • Part 1: Model
  • Part 2: View and Intent
  • Part 3: State Reducer
  • Part 4: Independent UI Components
  • Part 5: Debugging with ease
  • Part 6: Restoring State
  • Part 7: Timing (SingleLiveEvent problem)
  • Part 8: In-App Navigation

《使用MVI打造響應(yīng)式APP》譯文

  • [譯]使用MVI打造響應(yīng)式APP(一):Model到底是什么
  • [譯]使用MVI打造響應(yīng)式APP[二]:View層和Intent層
  • [譯]使用MVI打造響應(yīng)式APP[三]:狀態(tài)折疊器
  • [譯]使用MVI打造響應(yīng)式APP[四]:獨(dú)立性UI組件
  • [譯]使用MVI打造響應(yīng)式APP[五]:輕而易舉地Debug
  • [譯]使用MVI打造響應(yīng)式APP[六]:恢復(fù)狀態(tài)
  • [譯]使用MVI打造響應(yīng)式APP[七]:掌握時(shí)機(jī)(SingleLiveEvent問題)
  • [譯]使用MVI打造響應(yīng)式APP[八]:導(dǎo)航

《使用MVI打造響應(yīng)式APP》實(shí)戰(zhàn)

  • 實(shí)戰(zhàn):使用MVI打造響應(yīng)式&函數(shù)式的Github客戶端

關(guān)于我

Hello,我是卻把清梅嗅,如果您覺得文章對(duì)您有價(jià)值,歡迎 ??,也歡迎關(guān)注我的博客或者Github。

如果您覺得文章還差了那么點(diǎn)東西,也請(qǐng)通過關(guān)注督促我寫出更好的文章——萬一哪天我進(jìn)步了呢?

  • 我的Android學(xué)習(xí)體系
  • 關(guān)于文章糾錯(cuò)
  • 關(guān)于知識(shí)付費(fèi)

總結(jié)

以上是生活随笔為你收集整理的[译]使用MVI打造响应式APP(八):导航的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。