您可以为此使用“属性飞溅”
假设您的基本组件已定义
<h1>Base Component</h1>
<div>Param1 = @Param1</div>
<div>Param2 = @Param2</div>
@code
{
[Parameter] public string Param1 { get; set; }
[Parameter] public string Param2 { get; set; }
}
并且您想预填充 Param1,因此您创建了一个新的 MyComponent
<BaseComponent Param1="predefined" @attributes=Attributes/>
@code
{
[Parameter(CaptureUnmatchedValues=true)]
public Dictionary<string,object> Attributes { get; set; }
}
现在,您可以使用 MyComponent 代替 BaseComponent,如果您不为 Param1 提供值,它将是预定义的(在这种情况下,字面意思是该值)
所以这个标记:
<BaseComponent Param1="base" Param2="component"/>
<MyComponent Param1="my" Param2="component"/>
<MyComponent Param2="component"/>
产生这个输出:
基础组件
Param1 = 基础 Param2 = 组件
基础组件
Param1 = 我的 Param2 = 组件
基础组件
Param1 = 预定义 Param2 = 组件
在 BlazorRepl 上查看实时示例:https ://blazorrepl.com/repl/QEvucNFB408fLIXd18