You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Blazor 8 InteractiveServer预渲染:OnInitializedAsync调用时机疑问

Blazor 8 InteractiveServer 预渲染相关疑问解答

问题1:OnInitializedAsync()调用两次的场景范围

  • 你当前全局配置的是带预渲染的InteractiveServer模式,这种模式下组件实例会在预渲染和交互式连接阶段复用,因此OnInitializedAsync()只会执行一次,不会出现两次调用的情况。
  • OnInitializedAsync()被调用两次的情况,确实仅发生在SSR(静态服务器渲染)+ 流式渲染/后续切换到InteractiveServer模式的场景:比如给组件单独设置@rendermode="new InteractiveServerRenderMode(prerender: false)"但页面本身是SSR渲染,或者混合使用SSR与InteractiveServer且未实现实例复用的场景。这类场景下会先在SSR阶段创建组件实例执行一次生命周期,交互式连接建立后再创建新实例重复执行初始化逻辑。

问题2:Blazor 8早期候选版本的情况

在Blazor 8的早期Preview版本(如Preview 1至Preview 3)中,确实存在InteractiveServer预渲染模式下OnInitializedAsync()被调用两次的Bug。该问题源于当时预渲染与交互式连接阶段的实例复用逻辑不完善,导致SignalR连接建立后重新创建了组件实例,重复触发初始化方法。后续的Preview版本(如Preview 4及之后)以及正式版已修复此Bug,正式版中不会出现该问题。

内容的提问来源于stack exchange,提问作者David Thielen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 20:12:46