Razor Pages用于服务器端 Web 应用程序,就像过去一样。
Blazor旨在提供流行的 JavaScript 框架(如 Angular 或 React)的替代方案,以创建(主要)在客户端浏览器中运行的单页应用程序 (SPA)。
但是,我也听说过服务器端 Blazor,这让我很困惑。根据这个答案,服务器端 Blazor 只是在服务器上运行的 Razor 组件。但是 Razor Pages 和 Razor Components 之间有什么区别?
注意:我不是想弄清楚哪个更好或“正确的选择”。我只是想弄清楚存在哪些技术差异。
Flo*_*res 19
最大的区别是 razor 页面在服务器上呈现并将整个页面发送到客户端。Blazor 服务器端仅通过信号连接发送 DOM 更改。所以没有页面重新加载。您需要在服务器上运行 asp.net core 才能使用此技术。
Blazor webassembly 完全是客户端。对 DOM 的更改在“本地”应用,这可以从静态网络服务器托管。
Sim*_*Ged 16
Razor Components顾名思义,用于为网页创建可重用的组件。
Razor pages 是单个文件中的网页和控制器的组合。
Razor components主要使用的Blazor,但它们也可以内使用Razor Pages,尽管它们被设计得更加原产于Blazor。
您不能在Razor Component没有托管页面的情况下显示,但可以在Razor Pages没有Razor components.
Razor Components 可从 .NET Core 3.0 开始使用。
Razor Pages 可从 .NET Core 2.1 开始使用。
编辑
RazorPages分为 HTML 页面和.cs代码文件。而Razor Components通常.cs在单个文件中包含 和 HTML,尽管它们可以分为 HTML 和代码隐藏文件。
在PageModel一个Razor Page允许ASP.NET核心绑定控制器返回到页面的公共属性的数据,然后使用您的网页内的属性来引用模型。您可以使用PageModel类中的属性来引用代码中的数据,并使用@modelHTML 中的属性来引用相同的属性。
Razor Components不绑定到模型,而是使用参数为其分配值,类似于为标准 HTML 元素分配值和事件的方式。这方面的一个例子可以在这里看到。
但是 Razor 页面和 Razor 组件之间有什么区别?
Blazor 存在一些令人困惑的命名问题。
Blazor 不是 Razor,但 Blazor 页面/组件打包在 .razor 文件中。Razor 使用 .cshtml 文件。
Blazor 组件可以在 Razor 页面上使用。
Blazor 服务器端被简称为“Razor 组件”,但已被回滚。
我只是想找出其中存在哪些技术差异。
Razor 页面是一个轻量级 MVC 分支,可在服务器上生成 HTML。
Blazor 是一个组件框架,可以直接运行在浏览器(WebAssembly)中,也可以运行在服务器上。在这两种情况下,它都会对浏览器 DOM 进行小幅更新。
首先,这里应该提到的是 Blazor Server 应用程序和 Blazor WebAssembly 应用程序的组件模型是相同的。唯一的区别是它们的执行方式。Blazor 服务器应用程序(也称为服务器端 Blazor 应用程序)在服务器上执行,并且在用户单击按钮元素后从此类执行中生成的 Html 内容通过SignalR 连接。另一方面,Blazor WebAssembly 应用程序也称为客户端 Blazor 应用程序,在用户的浏览器上执行;也就是说,C# 代码在浏览器上运行一个进程,最后在浏览器中输出并呈现 Html 内容。
但是 Razor 页面和 Razor 组件之间有什么区别?
Razor 组件是 Blazor 的两种执行模式中使用的组件模型。组件是通常从 ComponentBase 类派生的代码单元。它可能包含两部分:视图部分由 Html 标记与 Razor 语法混合组成,代码部分为 C# 代码。一个组件可以是另一个组件的子组件,但它可以是一个Page Component;这是一个组件,在呈现时构成一个完整的 Html 文档。
Razor Pages 是一个 Web 框架,就像 MVC 框架一样。使用 Razor 页面时,您创建的页面使用Razor 语法和 C#,就像 Blazor 一样,这解释了为什么它们乍一看如此相似。但是,Razor 页面仅在服务器上创建,并且 Html 内容被输出(呈现)并推送到用户的浏览器。它们的架构不同,您需要学习一系列课程才能在其中任何一个中进行编程。综上所述,唯一的相似之处就是Razor 语法和 C#的使用。语言是误解的根源,在编程世界中,这一点比以往任何时候都更明显,例如 Blazor 的命名(命名发生了多次更改)以及无意中将其与 Razor Pages 等同起来。除此之外,您可以在 Razor 页面中嵌入 Razor 组件这一事实似乎是进一步混乱的根源。
| 归档时间: |
|
| 查看次数: |
6930 次 |
| 最近记录: |