我正在研究使用 C# 在 Xamarin 应用程序中实现 MVU 模式的可能性。这似乎主要取决于提供给视图的模型的不变性以及在Update
需要更改模型时将继续生成新模型的功能。
如果模型可能包含引用类型,是否可以在 C# 中正确实现这一点而无需实现某种深拷贝?
我知道在 F# 中存在像 Fabulous 这样的框架来执行此操作,但我只是想了解 C# 缺乏对不变性的支持是否意味着如果不求助于实现某种深复制操作?
我正在研究使用 C# 在 Xamarin 应用程序中实现 MVU 模式的可能性。这似乎主要取决于提供给视图的模型的不变性以及在Update
需要更改模型时将继续生成新模型的功能。
如果模型可能包含引用类型,是否可以在 C# 中正确实现这一点而无需实现某种深拷贝?
我知道在 F# 中存在像 Fabulous 这样的框架来执行此操作,但我只是想了解 C# 缺乏对不变性的支持是否意味着如果不求助于实现某种深复制操作?
微软似乎很快就会用其即将推出的多平台应用程序 UI (MAUI)框架来回答这个问题:
readonly State<int> count = 0;
[Body]
View body() => new StackLayout
{
new Label("Welcome to .NET MAUI!"),
new Button(
() => $"You clicked {count} times.",
() => count.Value ++)
)
};
更多信息:
有一个库可以用 Xamarin.Forms 在 C# 中完成完整的 MVU:https ://github.com/shirshov/laconic (我是作者)
Comet可能是您正在寻找的图书馆。它也将成为 MAUI 将支持的 MVU 模式的基础,这也是@sevenate 所指的。