Blazor-Blazor呈现概念
静态和交互式呈现概念
在Blazor开发中,Razor 组件具备两种重要的呈现方式,分别是静态呈现和交互式呈现。
静态呈现
也被称为静态渲染,是一种典型的服务器端方案。在这种模式下,组件呈现时,用户与.NET/C# 代码之间缺乏交互能力。这就好比用户在浏览一个纯展示的网页,只能观看页面上已经生成好的内容,却无法与后端代码进行互动。尽管 JavaScript 和 HTML DOM 事件依然能够正常发挥作用,比如页面上的按钮点击可以触发 JavaScript 函数来改变页面元素的样式,但客户端上发生的任何用户事件,诸如点击、输入等,都无法借助运行在服务器上的.NET 来处理。这种静态呈现方式,在一些对交互性要求不高,主要以展示大量稳定内容为主的场景中应用广泛,例如公司的产品介绍页面、新闻资讯展示页面等,它能高效地将内容呈现给用户,减少服务器的交互处理压力。
交互式呈现
当组件以交互式呈现时,它拥有了通过 C# 代码处理.NET 事件的强大能力。这里的.NET 事件处理,存在两种处理环境。一方面,在服务器端,由ASP.NET Core 运行时来处理这些事件,这适用于对安全性、计算资源要求较高,需要在服务器端进行复杂逻辑处理的场景,比如电商系统中的订单处理、用户权限验证等功能。另一方面,在客户端的浏览器中,基于 WebAssembly 的 Blazor 运行时能够处理事件,这使得用户在浏览器端就能获得即时的交互反馈,极大地提升了用户体验,像一些在线表单填写、实时数据可视化展示等功能,就常常依赖这种客户端的事件处理机制。这种交互式呈现为开发者构建高度动态和交互性强的 Web 应用提供了有力支持,让用户与应用之间的互动更加流畅和自然。
客户端和服务器呈现概念
客户端呈现 (CSR)
意味着最终 HTML 标记由客户端上的 .NET WebAssembly 运行时生成。 对于这种类型的呈现,应用的客户端生成的 UI 没有 HTML 从服务器发送到客户端。 假定用户可与页面交互。 没有静态客户端呈现之类的概念。 CSR 假定是交互式的,因此行业或 文档中不使用“交互式客户端呈现”和“Blazor CSR”。
服务器侧呈现 (SSR)
意味着最终 HTML 标记由服务器上的 ASP.NET Core 运行时生成。 HTML 通过网络发送到客户端,供客户端的浏览器显示。 对于这种类型的呈现,客户端不会为应用的服务器生成的 UI 创建 HTML。 SSR 可以是两种类型:
○ 静态 SSR:服务器生成静态 HTML,它不提供用户交互性或维护 Razor 组件状态。
○ 交互式 SSR:Blazor 事件允许用户交互,并且 Razor 组件状态由 Blazor 框架维护。