Blazor Razor组件分页属性方法复用:如何实现继承?
Blazor中通过继承复用Razor组件的分页逻辑
Blazor完全支持通过继承基类来复用组件的属性和方法,具体操作步骤如下:
1. 创建共享基类
新建一个C#类文件(比如PagedComponentBase.cs),将所有组件共用的分页属性、方法迁移到这个基类中,注意把需要被子类访问的成员设为protected或public:
using Microsoft.AspNetCore.Components; public class PagedComponentBase : ComponentBase { // 共享属性 protected bool MyProperty { get; set; } // 共享方法(原ZoekenAsync译为SearchAsync) public async Task SearchAsync(ChangeEventArgs args) { // 这里编写分页相关的通用逻辑 // do something(); } }
2. 在子组件中继承基类
在需要复用逻辑的Razor组件开头,通过@inherits指令指定基类,之后组件就能直接使用基类的属性和方法:
@inherits PagedComponentBase <!-- 组件的HTML内容示例 --> <input type="text" @onchange="SearchAsync" placeholder="搜索" /> @code { // 这里编写当前组件独有的属性和方法即可 private string LocalFilter { get; set; } }
注意事项
- 基类中如果需要访问Blazor的生命周期方法(如
OnInitializedAsync),直接在基类中重写即可,子类可选择继承或覆盖这些逻辑 - 若需要强制子类实现特定逻辑,可以将基类设为抽象类,并定义抽象方法(比如获取分页数据的方法)
- 私有成员无法被子类访问,所以通用成员必须设置为
protected或public
内容的提问来源于stack exchange,提问作者Eric
相关产品推荐
相关产品推荐

