在回答了这个关于 ViewModel 是否仍然适用于 MVC Core 的问题后,我现在发现自己在 Blazor 中遇到了类似的问题。
我开始构建我的第一个复杂的 Blazor 页面,需要管理很多状态。页面元素将根据在页面其他部分输入的数据显示/隐藏和更新。
我过去曾与 React 和 Redux 合作过,并发现为所有状态拥有一个位置非常有价值,尤其是对于单元测试目的。
因此,我的计划是拥有一个视图模型,它不仅包含我将要保存到数据库中的数据,还包含潜在的标志,例如ShowSalesOrdersPanel将if在 razor 视图中的语句中使用的标志。
我的问题是,这个视图模型应该是一个单独的类,还是@functionsBlazor razor 文件的部分实际上是视图模型?我应该用那个代替吗?
在提出这个问题后,我遇到了 Microsoft Blazor 团队出色的Blazing Pizzas blazor-workshop 工作示例。
该示例使用基于状态的方法,其方式与 React 中使用 Redux 或其他基于 Flux 的方法时经常采用的方法类似。
这似乎是一种非常好的方法,我发现它在 React 中非常有效。我在这个答案中写了更多关于基于状态的方法的内容。
Blazor 中的 @functions 块实现与 Razor Pages 相同的功能。你可以在@functions块中定义你的对象,实例化和使用它们等等。@functions块实际上就是我们所说的“代码隐藏”。我想你都知道了,对吧?
目前还没有正式的最佳实践可用,因为 Blazor 仍处于初步开发阶段。最佳实践需要社区的长期经验。您可以按照 Asp.Net 团队制作的示例来了解如何在 Blazor 中进行开发的一些想法。例如,创建一个 StateApp 类,其职责是管理组件的状态等。目前,人们应该利用自己的经验和知识来设计他的应用程序。例如,创建一个文件夹来包含您的 Model 对象等,例如定义一个 Customer 模型类,然后在 @functions 块和其他地方使用它。简而言之:Blazor 中还没有最佳实践。
希望这可以帮助...
| 归档时间: | 
 | 
| 查看次数: | 2945 次 | 
| 最近记录: |