5

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

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

4

2 回答 2

2

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

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

您也可以使用 AuthorizeRouteView 完成一些事情,但作为一个单独的应用程序组件,它将是一个更清洁、更独立的解决方案。

于 2021-04-20T05:45:48.833 回答
2

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

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

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

在 .Net 5 项目模板中,仅存在第一行。

于 2022-02-08T07:26:59.400 回答