【发布时间】:2020-01-30 01:00:24
【问题描述】:
我是 Blazor 的新手,具有基本的 Angular 和 Vue.js 经验。我想渲染一个多态组件列表:
<ul>
@foreach (fruit of fruits)
<li>HOW DO I RENDER FRUIT HERE??? </li> // render the fruit component
</ul>
@code {
// Each member in the list is a subtype of Fruit
var fruits = List<FruitComponent> {
new PearComponent(),
new AppleComponent()'
new BananaComponent(),
new RasberryComponent()
}
据我所知,有几种方法可以实现这一目标,但每种方法都有自己的缺点。一个不常见的建议是使用未记录的 API 调用,这可能会在没有通知的情况下被弃用,但它似乎几乎是理想的。另一个建议在代码中发出标记,这会带回编写 ASP.NET 服务器控件的乏味。最后,最常见的建议是使用条件标记,虽然非常简单,但它将渲染代码与它正在渲染的组件耦合在一起。
我读过的大部分文档可能已经过时并且不再相关。随着 Blazor 的正式发布,实现这一目标的推荐方法是什么?
【问题讨论】:
-
你想在
????上做什么? -
@HenkHolterman,我只想渲染水果
-
好的,我忽略了 Componet 后缀。但是你怎么写这些?只是带有 BuildRenderTree() 的类,还是你想写一个 PearComponent.razor ?因为这与 ctor 参数 afaik 不押韵。
-
@HenkHolterman。我想渲染组件的剃刀文件。我将修改代码。是的,我不知道你不能使用 ctor。我在使用 Web 框架时遇到的一个问题是,它们经常迫使您围绕语言内置的 OO 工具进行工作。