【问题标题】:Xamarin Forms : can Prism and ReactiveUI be used in the same project ? If so, is it a good idea?Xamarin Forms:可以在同一个项目中使用 Prism 和 ReactiveUI 吗?如果是这样,这是个好主意吗?
【发布时间】:2019-09-29 22:34:05
【问题描述】:

我已经在一个移动应用程序上工作了一周,用于个人教育和增强。我有一些 WPF 和 MVVM 经验,我没有移动开发经验。

这个想法是做一个跨平台的应用程序,同时测试一些编码理念:

我打算使用以下组件:

  • Prism.Unity.Forms :似乎提供了应用程序结构、ioc、导航,似乎被广泛使用,并且由一流的人完成
  • ReactiveUI、ReactiveUI.XamForms、ReactiveUI.Fody : WhenAnyValue、ObservableAsPropertyAttribute、ReactiveAttribute (tutorial),不使用它们对我来说似乎是一个巨大的错失机会

我的 Visual Studio 的当前结构如下:

  • Csproj
    • 视图模型
      • 创建ExercisePageViewModel
      • 主页视图模型
    • 查看次数
      • 创建练习页
      • 主页

我管理了以下内容:

  • 使用 Prism 的导航功能将 HomePage 设置为包含在 NavigationPage 中的初始页面。
  • 在 XAML 中声明一个命名按钮,通过在后面的代码中创建的 OneWay 绑定设置其 Command 属性,使用 ReactiveUI 功能(如教程中所示,使用 WhenActivated 方法)
  • 使用 Prism 导航导航到第二页 (CreateExercisePage)

一个问题是网上有几篇文章比较了 Prism 和 ReactiveUI (google Prism vs ReactiveUI)。

所以问题是:同时使用两者我做错了吗?

我现在没有问题,但我会遇到一个吗?即使我不这样做,同时使用它们是否有意义?

【问题讨论】:

    标签: c# xamarin.forms architecture prism reactiveui


    【解决方案1】:

    所以问题是:同时使用两者我做错了吗?

    Prism 和 ReactiveUI 一起使用没有问题。 ReacitveUI 是一组扩展方法,而不是一个固执己见的框架。

    我暂时没有问题,但我会遇到一个吗?

    您可能会遇到属性更改事件在两个框架之间来回切换的问题(Prism 可能比其他 Mvvm 框架少),但这应该很容易解决。

    即使我不这样做,同时使用它们是否有意义?

    我通常说,在选择 Mvvm 框架时,您可以根据它的功能集来选择您想要的框架。如果 Prism 具有大部分功能,而您只是想通过一些响应式编程为其增添趣味,那么这是一个不错的选择。

    【讨论】:

      【解决方案2】:

      我发现了 @Dan Seigel@Rodney Littles 的精彩视频 this,这是关于如何使用 RxUI 处理 VM 位和使用 Prism 进行引导和结构材料的演练。

      它的结构在示例项目的ReadMe.md中概述:

      使用 ReactiveUI + Prism

      • 使用 Prism 导航范式 + DI
      • 使用反应式命令
      • 为 ViewModel 的基类使用 ReactiveObject

      Adam Pedley 借来的用于 Xamarin.Forms 的 Instagram 用户界面

      使用以下 ReactiveUI 概念

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-26
      • 2013-04-02
      • 1970-01-01
      • 1970-01-01
      • 2016-02-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多