了解模板组件

已完成

模板组件可跨多个应用重复使用,为 UI 元素自定义提供经过尝试和测试的布局和逻辑的基础。 模板组件定义常见元素并将其应用于所有页面,从而跨 Web 应用应用标准化设计。 模板可以简化更新(例如品牌重塑),因为只需在中心模板位置进行修改。

本单元将介绍模板组件,以及如何将它们合并到 Blazor 应用程序中。

RenderFragment 类型

模板组件为一个或多个 HTML 标记片段提供布局和逻辑。 HTML 使用模板组件提供的上下文呈现。 模板组件使用 RenderFragment 对象作为占位符,在运行时将标记插入其中。

模板只是一个普通的 Razor 组件。 若要使用模板,使用组件会像引用任何其他组件一样引用模板。 名称 ChildContentRenderFragment 参数的默认名称。 可以为参数指定不同的名称,但在测试页应用模板时必须指定此名称。

泛型 RenderFragment<T> 参数

默认情况下,RenderFragment 类充当 HTML 标记块的占位符。 但是,你可以使用泛型类型 RenderFragment<TValue> 通过类型参数呈现其他类型的内容,并提供逻辑来处理模板组件中的指定类型。

例如,假设你要创建一个模板来显示集合中的项。 可以使用 C# foreach 循环来循环访问集合并显示找到的项目。 但是该集合可能包含任何类型的数据,因此需要一种呈现每个项的通用方法。

若要编写泛型类型模板组件,需要在模板组件本身和模板的使用组件中指定类型参数。 以下列表表示泛型类型模板组件的常见特征。

  • 模板组件中的类型参数是使用 @typeparam 指令引入的。 如有必要,一个模板组件可以有多个类型参数。
  • 模板可能会定义一个参数,该参数包含由类型参数所指定类型的可枚举对象集合。
  • 模板还根据采用相同类型参数的泛型 RenderFragment 类型定义 ChildContent 参数。

有关详细信息,请参阅 ASP.NET Core Blazor 模板化组件

知识检查

1.

为了共享 HTML 片段,应在 Blazor 组件上配置什么参数对象类型?

2.

能在不需要创建其他标记的情况下捕获组件内部所有标记的参数的默认名称是什么?