Blazor Server 通过调用 Razor 组件上的 RouteAttribute 特性来实现路由。RouteAttribute 特性允许您将 URL 模式映射到 Razor 组件,它会在启动应用程序时创建一个路由表,并使用自动生成的 JavaScript 文件建立 SignalR 连接。
以下是一个示例,其中定义了两个 Razor 组件,并使用 RouteAttribute 指定了它们的 URL 模式:
[Route("/counter")]
public partial class Counter
{
private int currentCount = 0;
private void IncrementCount()
{
currentCount++;
}
}
[Route("/fetchdata")]
public partial class FetchData
{
private WeatherForecast[] forecasts;
protected override async Task OnInitializedAsync()
{
forecasts = await Http.GetFromJsonAsync("sample-data/weather.json");
}
}
在这个示例中,Counter 组件的 URL 模式为“/counter”,FetchData 组件的 URL 模式为“/fetchdata”。在浏览器中打开这些 URL,Blazor Server 将会处理这些请求并呈现相应的 Razor 组件。
值得注意的是,Blazor Server 只支持单页应用程序(SPA)模式,并使用 SignalR 技术实现实时通信。该技术允许在客户端和服务器之间建立持久连接,以快速响应与服务器的通信。