预呈现作用
Blazor 的预呈现(Prerendering) 是一个核心特性,主要用于提升 Blazor WebAssembly (WASM) 应用的初始加载体验和搜索引擎优化(SEO)。它在应用启动过程中扮演着关键角色。
Blazor 的预呈现是一种巧妙的技术,它通过在服务器端预先渲染 Blazor WebAssembly 应用的初始 UI 并直接发送给浏览器,显著提升了用户首次加载的体验(消除白屏),并大大改善了应用的搜索引擎友好性(SEO)。同时,它通过状态序列化和 DOM 关联技术,实现了从静态 HTML 到完全交互式 SPA 的平滑过渡。这是构建用户友好且易于发现的 Blazor WASM 应用的关键特性。
禁用预呈现功能
@rendermode @(new InteractiveAutoRenderMode(prerender:false))
支持预呈现
- (1) None:静态 SSR 呈现,不具有交互性,不支持预呈现。
- (2) Server:交互式 SSR 呈现,具有交互性,支持预呈现。
- (3) WebAssembly:交互式 CSR 呈现,具有交互性,支持预呈现。
- (4) Auto:先 Server,后WebAssembly,具有交互性,支持预呈现。
Server 呈现模式预呈现
对于自动模式创建的 Blazor WebApp 项目,在*.Client 项目中,也可以将组件设置为 Server 呈现模式,这样该组件会全部在服务器上运行。
设置 Server 呈现模式,并启用预呈现:
@rendermode @(new InteractiveServerRenderMode(prerender:true))
WebAssembly 呈现模式预呈现
在这种模式下,组件需要下载到浏览器的WebAssembly 中运行。
但是,若 WebAssembly 模式下还启用了预呈现模式,则每次运行都是预呈现在服务器端运行,重新呈现在 WebAssembly 下运行。
使用如下代码设置 WebAssembly 呈现模式,并启用预呈现:
@rendermode @(new InteractiveWebAssemblyRenderMode(prerender:true))