剃刀组件与视图组件

时间:2019-12-13 19:37:17

标签: asp.net-core razor-components

我最近从Asp .NET Core 2.2升级到3.1,可以在剃须刀页面中使用Razor组件。它们基本上看起来像View Components,只是它使用blazor并将所有内容都放在同一文件中。我尝试搜索,但是我还没有阅读有关使用Razor组件而不是View组件的文档的任何内容。

这是问题所在...

在Razor页面中使用Razor组件而不是View组件有什么意义?是不是更好?我知道视图组件的设置有点麻烦,因为您必须使用逻辑设置默认视图和文件后面的代码,并且不能仅在父视图上使用javascript。我的大多数应用程序都装有View组件,我想知道切换到剃须刀组件有什么优势?

2 个答案:

答案 0 :(得分:8)

虽然View Components更像是局部视图,但是asynchronousDI友好且有点独立。它们主要用于view-only的目的(是的,可以通过AJAX添加一些update logic,但更像是hack而不是feature),并且使用了主要用于重用常见的UI单元,例如导航,登录块,侧边栏等。

Razor Components是一种“功能齐全”的UI组件,可以轻松嵌套,通过组件hierarchy传递参数,引发和处理UI events等。因此,您可以轻松地使用它们来管理您的应用程序UI,甚至创建custom UI组件libraries

答案 1 :(得分:1)

查看组件vs剃刀组件

另一方面,使用.NET Core MVC的View组件介绍Razor组件随.NET Core Blazor一起引入。所以,有两件事是不同的。

澄清

  

使用Razor组件代替Razor页面中的View组件有什么意义?

重点是将MVC应用程序迁移到Blazor。 Razor components是Blazor框架的一部分。 Blazor是一个单页应用程序开发框架。 for more

  

好一点吗?

是的,它比View Component好。它支持JavaScript interoperability。 Razor Components将浏览器视为“瘦客户端”,其中Web浏览器仅处理用户界面(UI),服务器接收事件并通过UI更新进行远程响应。对于用户而言,该应用程序与任何其他Web应用程序都没有区别。

  

切换到剃须刀组件有什么好处?

从我的角度来看,最酷的好处在于,这样的应用程序将具有SPA(单页应用程序)外观,而从技术上讲不是单页应用程序。

Razor Components具有允许使用的独特体系结构。 NET应用程序在服务器端运行,而用户界面在远程浏览器中运行不正常。的组合。 NET Core和SignalR允许您在不使用JavaScript的情况下编写Web应用程序。

Razor组件可以扮演许多角色。它们可以代表特定的UI,等效于Razor Pages部分,视图组件或标签帮助器。或者它们可以代表布局。或者它们可以代表整个页面。在Razor Page(或实际上是MVC视图)中使用时,它们将代替部分视图组件或自定义标签帮助器。