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