讲解一下Blazor项目运行加载顺序
下面我系统、按顺序、结合源码层面,把Blazor 项目从“按下 F5”到“页面首次渲染完成”的完整运行加载顺序讲清楚。
我会同时覆盖Blazor Server 和Blazor WebAssembly,并指出关键差异点,方便你对号入座。
一、总体概览(先看这张“地图”)
浏览器请求 ↓ ASP.NET Core 启动 ↓ 中间件管道 ↓ Blazor 端点命中 ↓ 创建 Circuit / Host ↓ 加载 .NET Runtime ↓ 初始化 DI / JS ↔ .NET 互操作 ↓ 执行 App.razor ↓ 路由匹配 ↓ 渲染页面组件二、Blazor Server 的加载顺序(最常见)
✅Blazor Server = .NET 跑在服务器,浏览器只负责 UI
① 浏览器发起请求
https://localhost:5001/这是一个HTTP(S) 请求
由 ASP.NET Core 接收
② ASP.NET Core 启动(Program.cs)
Program.cs
var builder = WebApplication.CreateBuilder(args); builder.Services.AddRazorPages(); builder.Services.AddServerSideBlazor(); // ⭐ 关键 var app = builder.Build();此时发生了什么?
注册:
Razor Pages
Blazor Server 所需服务
SignalR(用于实时通信)
③ 中间件管道执行
app.MapBlazorHub(); // ⭐ SignalR Hub app.MapFallbackToPage("/_Host");请求匹配顺序:
请求 | 命中 |
|---|---|
