Поскольку я хочу разработать несколько многоразовых компонентов Blazor, я надеюсь, что у них может быть такая функция:
Предположим, у меня есть собственный компонент MyComponent, я могу добавить к нему любой атрибут CSS, когда я его использую:
<MyComponent Class="custom-css1 custom-css2">
some child content...
</MyComponent>
Находясь в MyComponent, я обычно исправляю некоторые общие атрибуты CSS для верхнего слоя, вот так:
<div class="fixed-css1 fixed-css2">
some child content...
</div>
Это означает, что мне нужно объединить две части атрибутов CSS вместе, чтобы получить окончательный HTML-код, например:
<div class="fixed-css1 fixed-css2 custom-css1 custom-css2">
some child content...
</div>
Так что, думаю, мне нужен этот узор:
<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}";
}
}
}
Чтобы уменьшить избыточный код, я мог бы создать базовый класс с защищенным свойством Class и всеми присущими ему компонентами, но я все равно не могу избежать написания одного и того же комбинированного кода в каждом из них. Я надеюсь, что есть какое-то решение для добавления этих настраиваемых CSS непосредственно в мой базовый класс, я думаю, я мог бы добиться этого, переопределив метод BuildRenderTree из ComponentBase clss:
protected override void BuildRenderTree(RenderTreeBuilder builder)
{
base.BuildRenderTree(builder);
}
Но, к сожалению, я перепробовал все свои способы сборки вручную, но понятия не имею, как это сделать. Я не знаю, как получить элементы моего HTML (например, div) и добавить к нему дополнительные атрибуты CSS.
Все это о функции, которую легко может сделать Vue. В коде Vue мы, безусловно, могли бы добавить любой атрибут к компоненту и передать их первому элементу в компоненте.
Может ли кто-нибудь помочь мне в достижении этой цели или дать мне какое-то предложение?
@Classes
, чтобы применить комбинированный CSS. Фактически, это именно то, что команда Blazor использует, чтобы разрешить настраиваемые классы CSS в элементах управления вводом формы. - person Chris Sainty   schedule 05.07.2019