0

0

.NET 8 Blazor 自动渲染模式(Auto)怎么用

月夜之吻

月夜之吻

发布时间:2025-12-31 09:46:02

|

231人浏览过

|

来源于php中文网

原创

Blazor的Auto渲染模式是.NET 8引入的自动选择SSR或CSR的特性,首屏服务端预渲染,交互后可升级为WebAssembly或Interactive Server。需在Program.cs调用AddAutoRenderMode()、注册MapBlazorHub(),并在App.razor使用@rendermode Auto。

.net 8 blazor 自动渲染模式(auto)怎么用

Blazor 的自动渲染模式(Auto)是 .NET 8 引入的新特性,它让组件能根据运行环境自动选择服务端渲染(SSR)或客户端渲染(CSR),无需手动切换配置。启用后,首屏走服务端快速呈现,交互后无缝升级为 WebAssembly 或 Interactive Server 模式——关键在于“自动”,但需要正确配置和理解触发条件。

启用 Auto 渲染模式

在项目中启用 Auto 模式,核心是修改 Program.cs 中的渲染服务注册方式:

  • AddServerSideBlazor()AddWebAssemblyRenderMode() 替换为 AddAutoRenderMode()
  • 确保使用 MapControllers()MapBlazorHub()(服务端通道必需)
  • App.razor 根组件上添加 @rendermode Auto 指令

示例代码片段:

// Program.cs
builder.Services.AddAutoRenderMode(); // ← 关键一步
// ...
app.MapBlazorHub();
app.MapControllers();
app.MapFallbackToPage("/_Host");

Auto 模式的实际行为逻辑

Auto 不是“随机选”,而是按请求上下文智能决策:

  • 首次 GET 请求(无 JS、无会话)→ 自动走 服务端预渲染(InteractiveServer),返回 HTML + 初始状态
  • 后续交互(如按钮点击、导航)→ 若已建立 SignalR 连接,则保持 InteractiveServer;若客户端支持 WebAssembly 且已加载 wasm 主机,则可升级为 InteractiveWebAssembly
  • 禁用 JS 的浏览器(或爬虫)→ 始终降级为静态服务端渲染(即非交互式 HTML)

注意:是否启用 WASM 升级,取决于你是否在 _Host.cshtml 中同时引用了 blazor.webassembly.jsblazor.server.js,并配置了 autostart="false" 交由框架调度。

BgSub
BgSub

免费的AI图片背景去除工具

下载

组件级控制与注意事项

不是所有组件都必须用 Auto,你可以混合使用:

  • 根组件(App.razor)设 @rendermode Auto,子组件可显式指定 @rendermode InteractiveServer@rendermode InteractiveWebAssembly
  • 带 JS 互操作(JS Interop)的组件,在纯 SSR 阶段会跳过执行,需用 OnAfterRenderAsyncNavigationManager.UriChanged懒加载判断
  • 状态管理要兼容服务端生命周期:避免在 @code 块中直接 new 实例(可能跨请求复用),推荐用 [Inject] IStateContainer 或 Scoped 服务

调试与验证是否生效

打开浏览器开发者工具,观察几个关键信号:

  • Network → 查看初始 HTML 响应头是否有 X-Blazor-Render-Mode: Auto
  • Elements → 检查页面是否包含 __blazor_start_options 脚本块,且 mode 字段为 "auto"
  • Console → 正常启动后会输出类似 Blazor started in auto mode. Rendering with InteractiveServer. 的日志
  • 断开网络再操作:若仍能响应(依赖本地 wasm),说明已成功切换到 WebAssembly 模式

基本上就这些。Auto 模式不复杂但容易忽略服务端通道和脚本加载顺序,配对好 MapBlazorHub() 和双 JS 引用,就能稳稳跑起来。

相关专题

更多
html版权符号
html版权符号

html版权符号是“©”,可以在html源文件中直接输入或者从word中复制粘贴过来,php中文网还为大家带来html的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

591

2023.06.14

html在线编辑器
html在线编辑器

html在线编辑器是用于在线编辑的工具,编辑的内容是基于HTML的文档。它经常被应用于留言板留言、论坛发贴、Blog编写日志或等需要用户输入普通HTML的地方,是Web应用的常用模块之一。php中文网为大家带来了html在线编辑器的相关教程、以及相关文章等内容,供大家免费下载使用。

638

2023.06.21

html网页制作
html网页制作

html网页制作是指使用超文本标记语言来设计和创建网页的过程,html是一种标记语言,它使用标记来描述文档结构和语义,并定义了网页中的各种元素和内容的呈现方式。本专题为大家提供html网页制作的相关的文章、下载、课程内容,供大家免费下载体验。

458

2023.07.31

html空格
html空格

html空格是一种用于在网页中添加间隔和对齐文本的特殊字符,被用于在网页中插入额外的空间,以改变元素之间的排列和对齐方式。本专题为大家提供html空格的相关的文章、下载、课程内容,供大家免费下载体验。

240

2023.08.01

html是什么
html是什么

HTML是一种标准标记语言,用于创建和呈现网页的结构和内容,是互联网发展的基石,为网页开发提供了丰富的功能和灵活性。本专题为大家提供html相关的各种文章、以及下载和课程。

2853

2023.08.11

html字体大小怎么设置
html字体大小怎么设置

在网页设计中,字体大小的选择是至关重要的。合理的字体大小不仅可以提升网页的可读性,还能够影响用户对网页整体布局的感知。php中文网将介绍一些常用的方法和技巧,帮助您在HTML中设置合适的字体大小。

500

2023.08.11

html转txt
html转txt

html转txt的方法有使用文本编辑器、使用在线转换工具和使用Python编程。本专题为大家提供html转txt相关的文章、下载、课程内容,供大家免费下载体验。

306

2023.08.31

html文本框代码怎么写
html文本框代码怎么写

html文本框代码:1、单行文本框【<input type="text" style="height:..;width:..;" />】;2、多行文本框【textarea style=";height:;"></textare】。

418

2023.09.01

小游戏4399大全
小游戏4399大全

4399小游戏免费秒玩大全来了!无需下载、即点即玩,涵盖动作、冒险、益智、射击、体育、双人等全品类热门小游戏。经典如《黄金矿工》《森林冰火人》《狂扁小朋友》一应俱全,每日更新最新H5游戏,支持电脑与手机跨端畅玩。访问4399小游戏中心,重温童年回忆,畅享轻松娱乐时光!官方入口安全绿色,无插件、无广告干扰,打开即玩,快乐秒达!

30

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Bootstrap 5教程
Bootstrap 5教程

共46课时 | 2.7万人学习

AngularJS教程
AngularJS教程

共24课时 | 2.2万人学习

CSS教程
CSS教程

共754课时 | 17.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号