gpt4 book ai didi

c# - Blazor 是否有一些像 vue 中的 $attrs 一样工作的机制?

转载 作者:行者123 更新时间:2023-11-30 19:23:06 27 4
gpt4 key购买 nike

我发现vue中的$attrs对组件设计是一个很有帮助的东西。如果我有一个包装“a”标签的组件,我可以使用 $attrs 传递所有这些原生 Prop ,而无需将它们逐个声明为参数。例如,我有一个这样的组件:

<div>
<a href="@Href" onclick="@OnClick" class="@Classes" style="@Styles">@Content</a>
</div>

我必须声明“Href、OnClick、类、样式”等参数。但是我们知道标签“a”还有大量的其他属性,比如“target, hreflang...”,更不用说“input”标签等等了。我认为声称所有这些都是一个令人难以置信的长参数列表是愚蠢的。

那么 Blazor 是否为我们开发人员提供了类似的功能?

最佳答案

是的,确实如此。

您可以使用 Blazor 的新 ‘splat’ operator去做这个。例如:

// MyComp

<div id=“@Id” @attributes=“InputAttributes”></div>

@code {
[Parameter]
public string Id { get; set; }

[Parameter(CaptureUnmatchedValues = true)]
public Dictionary<string, object> InputAttributes { get; set; }
}

根据上面的示例定义参数将使其收集在组件上定义的与任何现有声明参数不匹配的任何属性。

用法:

<MyComp Id=“foo” class=“myclass” />

将呈现:

<div id=“foo” class=“myclass”></div>

关于c# - Blazor 是否有一些像 vue 中的 $attrs 一样工作的机制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57426621/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com