2周刷完100道前端优质面试真题

148 阅读1分钟

download:2周刷完100道前端优质面试真题

Jetpack架构演化(一):初步运用flow,附加经典案例

在jetpack体系中 livedata的角色纯地道粹是个桥接器,DataSource中获取到数据,然后由viewmodel中止逻辑处置,最后被livedata.postValue到view层,独一的价值是绑定了lifecycle, 只在页面生动(start)的时分接受数据

官方的一篇引见可以参考:从 LiveData 迁移到 Kotlin 数据流 - 掘金

关于初学者来说运用lieveData的好处是足够简单和相对安全

引入flow主要由于以下几点:

具有更友好的API,学习本钱较低

跟Kotlin协程、LiveData别离更紧密,Flow能够转换成LiveData,在ViewModel中直接运用

别离协程的作用域,当协程被取消时,Flow也会被取消,避免内存透露

flow库附属于kotlin, livedata属于Android, 拜托Android平台的限制关于未来跨平台展开有利

【flow是个冷数据流】

所谓冷流,即下游无消费行为时,上游不会产生数据,只需下游开端消费,上游才开端产生数据。

而所谓热流,即无论下游能否有消费行为,上游都会自己产生数据。

下边经过一个经典场景细致描画下flow(单纯的flow,而stateFlow会在后续章节中讲解)的运用

案例:一个菜谱应用app中,我想在一个页面展示一个列表(recyclerview) ,此列表的每个item是个子列表,子列表依次为

计划菜谱列表;

收藏菜谱列表;

根据食材选择的菜谱列表;