首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果协调器不在RxSwift中,那么在RxSwift + MVVM +协调器的情况下,协调器会去哪里?

如果协调器不在RxSwift中,那么在RxSwift + MVVM +协调器的情况下,协调器会去哪里?
EN

Stack Overflow用户
提问于 2019-05-22 00:03:30
回答 3查看 623关注 0票数 0

我会尽量保持简短:我们启动了应用程序full RxSwift,但我们的协调人开始不堪重负地维护和扩展,所以我们正在重新处理他们,使其不使用RxSwift,现在我们不知道如何使用它们以及将它们保存在哪里。

最简单的例子:带有一个按钮的视图控制器,视图模型,协调器。我在哪里调用coordinator.navigate(to: .mySection)以及如何调用?协调器应该保留在视图控制器中吗?我认为它们应该保留在视图模型中,但是在视图模型中订阅不是推荐的用法。

我不想过度设计这一点,但我希望得到一些有洞察力的帮助。

EN

回答 3

Stack Overflow用户

发布于 2019-10-04 00:07:34

我推荐使用XCoordinator和他们提出的架构MVVM-C,我已经在两个大型/复杂的应用程序中使用过,这很容易。

票数 1
EN

Stack Overflow用户

发布于 2019-05-24 20:26:33

如果您想使用协调器作为ViewModels的依赖项,请查看这个库:Action

Action使您可以将按钮上的操作与ViewModel绑定。您只需在ViewModel中定义一个操作,并将其绑定到视图中。Action类型只是一个序列,它接受其他序列作为输入,并返回另一个序列作为输出。因此,您不需要在ViewModel上使用DisposeBag。

如果您想查看示例,请查看操作的GitHub项目,或者,如果您想在应用程序示例中查看,Ray Wenderlich RxSwift一书中有一个关于如何集成MVVM和协调器的非常简洁的示例。

票数 0
EN

Stack Overflow用户

发布于 2019-05-25 03:38:32

没有一个MVVM元素直接寻址Coordinators,所以如果您正在使用Soroush的协调器模式的好处,您可能正在使用VIPER,但您可能没有意识到这一点,这并不是真正重要的。

在VIPER中,R代表Routing,它完全符合协调器的定义。

我真正想建议的两件事是:

  1. 互联网上的大多数网站都教你为每个UIViewController创建一个独立的协调器,但是我亲自问过索鲁什这个问题,他回答说:这不是协调器的最佳实践。因此,我在最新的应用程序中只使用了两个协调员,并对结果相当满意。
  2. 如果你想花点时间在毒蛇上,我建议假设你的ViewControllers是你的毒蛇模型的演示者;我在互联网上看到了一些毒蛇教程,表达了不同的观点。

附注: MVVM很棒,但它不可伸缩,我谦虚地建议你看看VIPER。这是你可能会发现有用的a good article

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56242275

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档