小编Sil*_*per的帖子

如何像 Vue 一样从父层向 Blazor 组件随机添加 CSS 属性?

由于我想设计一些可重用的 Blazor 组件,我希望它们可以具有这样的功能:

假设我有一个自定义组件“MyComponent”,我可以在使用它时为其添加任何 CSS 属性:

<MyComponent Class="custom-css1 custom-css2">
    some child content...
</MyComponent>
Run Code Online (Sandbox Code Playgroud)

在 MyComponent 中,我通常将一些常见的 CSS 属性固定到顶部 wapper,就像这样:

<div class="fixed-css1 fixed-css2">
    some child content...
</div>
Run Code Online (Sandbox Code Playgroud)

这意味着我必须将 CSS 属性的两个部分组合在一起以制作最终的 HTML,如:

<div class="fixed-css1 fixed-css2 custom-css1 custom-css2">
    some child content...
</div>
Run Code Online (Sandbox Code Playgroud)

所以我想我应该有这个模式:

<div class="@Classes">
    some child content...
</div>

@functions
{

    [Parameter]
    private string Class { get; set; } = "";

    private string fixedClass = "fixed-css1 fixed-css2";

    private string Classes
    {
        get
        {
            return $"{fixedClass} {Class}";
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

为了减少冗余代码,我可以创建一个基类,它具有受保护的 Class 属性和它固有的每个组件,但我仍然无法避免在每个组件中编写相同的组合代码。我希望有一些解决方案可以直接在我的基类中添加这些自定义 CSS,我想我可以通过覆盖 …

c# razor asp.net-core blazor

11
推荐指数
1
解决办法
8524
查看次数

Blazor是否有某种机制可以像$ attrs这样工作?

我发现vue中的$ attrs在组件设计中非常有用。如果我有包装“ a”标签的组件,则可以使用$ attrs传递所有这些本机道具,而无需一一声明它们为参数。例如,我有一个像这样的组件:

<div>
    <a href="@Href" onclick="@OnClick" class="@Classes" style="@Styles">@Content</a>
</div>
Run Code Online (Sandbox Code Playgroud)

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

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

c# asp.net-core blazor

2
推荐指数
2
解决办法
185
查看次数

标签 统计

asp.net-core ×2

blazor ×2

c# ×2

razor ×1