在客户端填充组件的页面的渲染模式

问题描述 投票:0回答:1

这就是我以前的做法:加载页面时,从

<body>
的数据属性中读取 JSON,然后通过 JavaScript 进行解析以填充元素(组件)。

我想创建与该页面等效的 Blazor Web 应用程序。问题在于,将页面的渲染模式设置为 Server 并将组件设置为 WebAssembly 会导致

Cannot create a component of type ... because its render mode 'Microsoft.AspNetCore.Components.Web.InteractiveWebAssemblyRenderMode' is not supported by interactive server-side rendering.

将所有设置为 WebAssembly 是可行的,但我不希望前端出现延迟(我相信这会导致在渲染完成之前首先下载运行时和内容)。设置为“自动”也可以,但我不确定这是否相当于我想要的。我做错了什么?

asp.net-core blazor
1个回答
0
投票

检查应用渲染模式的规则,并且不要尝试将与其父组件的渲染模式不同的交互式渲染模式应用于子组件

  • 默认渲染模式为静态。
  • 交互式服务器(InteractiveServer)、交互式WebAssembly (InteractiveWebAssembly) 和交互式自动 (InteractiveAuto) 渲染模式可以从组件中使用,包括使用不同的 同级组件的渲染模式。
  • 您无法在子组件中切换到不同的交互式渲染模式。例如,服务器组件不能是 WebAssembly 组件的子组件。
  • 从静态父组件传递到交互式子组件的参数必须是 JSON 可序列化的。这意味着您无法传递渲染片段或 子内容从静态父组件到交互式子组件 组件。
  • 因此,正如您所说,将所有设置为 WebAssembly 或 Auto 效果很好。

© www.soinside.com 2019 - 2024. All rights reserved.