在dotnet core blazor web assembly app
的主方法中有一个WebAssemblyHostBuilder
类,它为blazor应用程序构建主机。在该类中,有一个名为RootComponentMappingCollection
的公共属性,可以添加blazor应用程序的根组件(设置路由的组件(。
可以向该集合添加更多的根组件。我很好奇为什么在一个应用程序中有多个根组件,有多个根源组件有什么好处,什么时候以及在什么情况下有多个根本组件更好?
除了@henk holterman所说的,.Net 6 WebAssembly项目模板本身也利用了这一功能来注册HeadOutlet
组件的实例,以使PageTitle
和HeadContent
组件正常工作。
如果您看到Program.cs的内容,将面临以下行:
builder.RootComponents.Add<App>("#app");
builder.RootComponents.Add<HeadOutlet>("head::after");
在.Net 5项目模板中,只显示第一行。
您可以拥有2个以上对相同URL做出反应的独立路由器。
对于一个简单的应用程序,考虑一个具有普通"用户"页面的网站。您可以通过在Index.Html.中堆叠一个额外的根,在每个页面中注入一个Admin或Developer部分
使用AuthorizeRouteView也可以实现一些功能,但作为一个单独的应用程序组件,它将是一个更干净、更独立的解决方案。