雖然預渲染現在是服務器端 Blazor 應用程序的默認值,客戶端 Blazor 應用程序也可以利用這一點。在這篇文章中,我將向您展示如何設置客戶端 Blazor 應用程序進行預渲染。
什么是預渲染?
預渲染是一個在服務器上編譯網頁的所有元素,並將靜態 HTML 提供給客戶端的過程。此技術用於幫助 SPA(單頁應用程序)改進其搜索引擎優化(SEO)。另一個好處是站點的加載速度似乎要快得多。 這對 Blazor 應用程序意味着什么是請求的頁面將在服務器上生成並編譯為靜態 HTML。此靜態 HTML 將包括標准客戶端 Blazor 模板中存在的文件。當客戶端收到此靜態 HTML 時,它將照常處理和呈現。
應用程序將運行執行文件時,dotnet運行時將與應用程序 dlls 一起下載。此時,所有靜態預渲染的元素都將替換為交互式組件,應用程序將成為交互式元素。
現在,在應用程序可用之前,這還需要發生很多事情。但這一切都發生在很短的時間空間,對於大多數最終用戶是察覺不到的。 啟用預渲染模式 就不能把Blazor 部署為靜態文件,適合使用asp.net core 宿主,因為它依賴.NET。
還有一點是需要考慮的是您必須管理任何 JavaScript 調用,以考慮預渲染。如果嘗試在預呈現的或組件的 方法中執行 JavaScript,則將發生異常。使用預渲染時,應將所有 JavaScript 互操作調用移動到生命周期方法。僅當頁面完全呈現后,才會調用此方法。
你可以在這里找到一個完整的例子 https://github.com/chrissainty/ClientSideBlazorPrerendering