在 Blazor 中,可以通过使用组件来动态创建页面。需要创建一个基本组件,该组件中包含一些变量和方法,用于管理新页面的创建和维护。然后在这个基本组件中引用其他组件,以创建新页。
以下是一个示例组件,该组件包含一个按钮,当点击按钮时,将创建一个新的子组件并将其添加到页面中:
@page "/"
Parent Component
@if (childComponent != null) {
@childComponent
}
@code {
private RenderFragment childComponent;
private void CreateChildComponent() {
this.childComponent = builder =>
{
builder.OpenComponent(0, typeof(ChildComponent));
builder.CloseComponent();
};
}
private class ChildComponent : ComponentBase {
protected override void BuildRenderTree(RenderTreeBuilder builder) {
builder.AddContent(0, "This is Child Component");
}
}
}
在此示例中,单击“Create Child Component”按钮将触发CreateChildComponent方法,该方法将创建一个新的RenderFragment并将其分配给childComponent变量。然后,基本组件的渲染方法检查childComponent是否设置,并在页面上呈现子组件。
子组件也是动态创建的,它是基本组件中的私有嵌套类。在子组件中,可以使用类似的技术动态创建子组件或其他元素。