我正在处理 Blazor 项目,并为我的组件使用
RenderMode.Auto
。据我了解,此模式最初在服务器端渲染组件,然后在下载 WebAssembly 文件后切换到客户端渲染。但是,我不清楚主页面和客户端页面/组件的分离,
即使在 Visual Studio 的演示项目中,客户端项目也有 Counter.razor
页面,而 Weather.razor
位于主项目中。我不明白为什么两个项目之间的组件是分离的,而我们可以简单地更改每个页面/组件的渲染模式
我假设您选择的模板是 RenderModeAuto,交互性设置为 Per Page/Component。
Server项目引用了Client项目,因此它可以看到Client项目中的所有razor组件。服务器中的注释
Program
:
app.MapRazorComponents<App>()
.AddInteractiveServerRenderMode()
.AddInteractiveWebAssemblyRenderMode()
.AddAdditionalAssemblies(typeof(SO78467379.Client._Imports).Assembly);
反之则不然。 WASM 项目只能看到其本身的组件及其引用的库。
因此任何应该由 WASM 渲染的页面/组件都需要位于客户端项目或其可以引用的库中。