文章 2022-05-29 来自:开发者社区

Jetpack MVVM 常见错误用法(四) 使用 LiveData/StateFlow 发送 Event

前言在 MVVM 架构中,我们通常使用 LiveData 或者 StateFlow 实现 ViewModel 与 View 之间的数据通信,它们具备的响应式机制非常适合用来向 UI 侧发送更新后的状态(State),但是同样用它们来发送事件(Event),当做 EventBus 使用就不妥了1. “状态” 与 “事件”虽然“状态”和“事件”都可以通过响应式的方式通知到 UI 侧,但是它们的消费场....

Jetpack MVVM 常见错误用法(四)  使用 LiveData/StateFlow 发送 Event
文章 2022-05-29 来自:开发者社区

Jetpack MVVM 错误用法(三)在 onViewCreated 中加载数据

ViewModel 数据的首次加载时机?在 MVVM 中, ViewModel 的重要职责是解耦 View 与 Model。View 向 ViewModel 发出指令,请求数据View 通过 DataBinding 或 LiveData 等订阅 ViewModel 的数据变化关于订阅 ViewModel 的时机,大家一般放在 onViewCreated ,这是没有问题的。但是一个常犯的错误是将 ....

Jetpack MVVM 错误用法(三)在 onViewCreated 中加载数据
文章 2022-05-29 来自:开发者社区

Jetpack MVVM 错误用法(二)在 launchWhenX 中启动协程

Flow vs LiveData自 StateFlow/ SharedFlow 出现后, 官方开始推荐在 MVVM 中使用 Flow 替换 LiveData。 ( 见文章:从 LiveData 迁移到 Kotlin 数据流 )Flow 基于协程实现,具有丰富的操作符,通过这些操作符可以实现线程切换、处理流式数据,相比 LiveData 功能更加强大。 但唯有一点不足,无法像 LiveData 那....

Jetpack MVVM 错误用法(二)在 launchWhenX 中启动协程
文章 2022-05-29 来自:开发者社区

Jetpack MVVM 常见错误用法(一) 拿Fragment当LifecycleOwner

首先承认这个系列有点标题党,Jetpack 的 MVVM 本身没有错,错在开发者的某些使用不当。本系列将分享那些 AAC 中常见的错误用法,指导大家打造更健康的应用架构Fragment 作为 LifecycleOwner 的问题MVVM 的核心是数据驱动UI,在 Jetpack 中,这一思想体现在以下场景:Fragment 通过订阅 ViewModel 中的 LiveData 以驱动自身 UI ....

Jetpack MVVM 常见错误用法(一) 拿Fragment当LifecycleOwner

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等