什么时候在Blazor中有一个以上的根组件



dotnet core blazor web assembly app的主方法中有一个WebAssemblyHostBuilder类,它为blazor应用程序构建主机。在该类中,有一个名为RootComponentMappingCollection的公共属性,可以添加blazor应用程序的根组件(设置路由的组件(。

可以向该集合添加更多的根组件。我很好奇为什么在一个应用程序中有多个根组件,有多个根源组件有什么好处,什么时候以及在什么情况下有多个根本组件更好?

除了@henk holterman所说的,.Net 6 WebAssembly项目模板本身也利用了这一功能来注册HeadOutlet组件的实例,以使PageTitleHeadContent组件正常工作。

如果您看到Program.cs的内容,将面临以下行:

builder.RootComponents.Add<App>("#app");
builder.RootComponents.Add<HeadOutlet>("head::after");

在.Net 5项目模板中,只显示第一行。

您可以拥有2个以上对相同URL做出反应的独立路由器。

对于一个简单的应用程序,考虑一个具有普通"用户"页面的网站。您可以通过在Index.Html.中堆叠一个额外的根,在每个页面中注入一个Admin或Developer部分

使用AuthorizeRouteView也可以实现一些功能,但作为一个单独的应用程序组件,它将是一个更干净、更独立的解决方案。

相关内容

最新更新