何时在 Blazor 中拥有多个根组件?

问题描述

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

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

解决方法

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

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

您也可以使用 AuthorizeRouteView 完成一些事情,但作为一个单独的应用程序组件,它会是一个更简洁、更独立的解决方案。我认为您实际上需要为管理页面创建一个单独的程序集。