MVVM架构中的导航



在Android或iOS项目中,已经实现了MVVM架构,导航的正确方法是什么?

  1. ViewModel决定导航发生的时间和目的地
  2. ViewModel决定导航何时发生,View决定哪个是目的地
  3. 视图决定导航何时发生以及哪个是目的地

我想应该是这样的:

  1. ViewModel决定导航何时发生,目的地,以及数据(如果有的话)要传递到目的地。
  2. View执行实际操作,决定导航动画和其他UI内容。

所以最终我们需要的逻辑是在ViewModel和UI的东西应该是View的责任。

一种方法是在需要导航时在ViewModel中触发Event。此事件应该指定目的地和要传递的数据(如果有的话)。View订阅这个事件,当它被触发时,它决定导航动画,然后执行实际的动作(导航的实际动作是UI的一部分),考虑到目的地和要传递的数据。

最新更新