【发布时间】:2021-12-30 00:01:48
【问题描述】:
请问有没有人提供一个资源链接来帮助学习如何使用 mvi 设计模式创建应用程序,但所有代码都应该是 Java 而不是 Kotlin
【问题讨论】:
请问有没有人提供一个资源链接来帮助学习如何使用 mvi 设计模式创建应用程序,但所有代码都应该是 Java 而不是 Kotlin
【问题讨论】:
点击之前!这是在Kotlin -> https://tech.olx.com/mvi-architecture-in-android-a-simple-livedata-based-approach-b4b23896fd32 但是如果你真的看一下代码 sn-ps 没有一行没有明显的Java 对应部分。在任何地方都没有像Flow、Scoping、Coroutine 这样的Kotlin 独家项目。
您无需学习Kotlin 即可理解它,只需阅读即可。
文章将MVI 解释为使用MVVM 的一种修改方式。
它有 2 个(ViewState/ViewEffect) 被视图观察到的组件(Fragment/Activity)
它有 1 个 (ViewEvent) 组件,视图使用该组件来触发上面观察到的组件的变化。
ViewState:它包含您的数据,如List,如boolean,用于确定某事是否为enabled,等等...
当任何状态数据发生变化时,例如对List 的更新,observer 会接收所有内容并更新所有内容。
ViewEffect :这些是一种“效果”,例如开始动画,制作toast。当您不关心效果的状态时,您将使用新数据更新它。就像我不在乎屏幕上是否还有另一个toast,atm。只需用新信息制作一个新的,然后展示它。
ViewEvent :这允许ViewModel 接收来自view 的事件并启动“更新”过程。如果在view 中单击一个按钮,view 所做的就是向ViewModel 发送一个ViewEvent,说明已单击的内容。然后ViewModel 根据收到的ViewEvent 更新ViewState/ViewEffect,然后传播到视图。
【讨论】:
data = POJO 和 sealed = abstract。这是其余的转换。 medium.com/asos-techblog/…