关于c#:Xamarin形式:Prism和ReactiveUI可以在同一项目中使用吗? 如果是这样,这是个好主意吗?

您所在的位置:网站首页 码农好吗 关于c#:Xamarin形式:Prism和ReactiveUI可以在同一项目中使用吗? 如果是这样,这是个好主意吗?

关于c#:Xamarin形式:Prism和ReactiveUI可以在同一项目中使用吗? 如果是这样,这是个好主意吗?

2024-07-12 13:27| 来源: 网络整理| 查看: 265

我已经为一个个人应用程序和增强功能开发了一个移动应用程序一个星期。我对WPF和MVVM有一定的经验,对移动开发没有经验。

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

响应式编程(ReactiveUI) 垂直切片(如果可能)(博客1,博客2)

我计划使用以下组件:

Prism.Unity.Forms:似乎提供应用程序结构,IOC,导航,似乎被广泛使用,并且由顶尖人士完成 ReactiveUI,ReactiveUI.XamForms,ReactiveUI.Fody:WhenAnyValue,ObservableAsPropertyAttribute,ReactiveAttribute(教程)(不使用它们)对我来说似乎是一个巨大的机会

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

Csproj 视图模型 CreateExercisePageViewModel HomePageViewModel 观看次数 CreateExercisePage 主页

我管理以下内容:

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

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

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

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

So the question is : Am I doing something wrong by using both at the same time ?

一起使用Prism和ReactiveUI没问题。 ReacitveUI是一组扩展方法,而不是自以为是的框架。

I have no problem for now, but will I run into one ?

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

And even if I don't, does it make sense to use them both at the same time ?

我通常会说,选择Mvvm框架时,要根据其功能集选择所需的框架。 如果Prism具有大多数功能,而您只想通过一些反应式编程来使其增添趣味,那是一个不错的方法。

我发现了@Dan Seigel和@Rodney Littles的精彩视频,这是有关如何将RxUI用于VM位以及如何将Prism用于引导和结构化的内容的演练。

示例项目的ReadMe.md中概述了其结构:

Using ReactiveUI + Prism

Use Prism Navigation Paradigms + DI Use ReactiveCommands Use ReactiveObject for the ViewModel's base class

Borrowed Instagram UI for Xamarin.Forms from Adam Pedley

Uses the following ReactiveUI concepts

WhenAny

Value Observable

Binding Type Converters

Pharmacist Events to Observables

Generates observables from events Observable.FromEvent

Observable As Property Helper

ReactiveUI Bindings

Inline type conversion

Data Load

Loading data in response to notify property changed

Reactive Command

Can execute based on an observable Binding IsExecuting to ActivityIndicator Bind output to a property

Reactive Extension Operators

DistinctUntilChanged StartWith Subscribe Throttle 相关讨论 视频在哪里?



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3