Blazor進階:RenderFragment
為工作紀錄。RenderTreeBuilder, RenderFragment, ChildContent。Blazor Advance。
引言
好文章參考
應用上關鍵的知識
再進一步自製 RenderFragment
RenderFragment原始碼紀錄
Last updated
為工作紀錄。RenderTreeBuilder, RenderFragment, ChildContent。Blazor Advance。
RenderFragmentLast updated
<div style="border:solid 1px red;">
<h3>FooComponent</h3>
@FooSection
</div>
@code {
// 產生UI的函式
RenderFragment<string> renderValue = (v) => @<span>@v</span>;
// 呼叫產生UI的函式
RenderFragment FooSection => renderValue("Hello World");
}@typeparam T
@inherits AsvtFieldBase<T>
<MudItem md=@md lg=@md>
<MudField Label=@_label
HelperText=@HelperText
Variant=Variant.Filled
ChildContent=@GetChildContent() />
</MudItem>
@code {
[Parameter] public RenderFragment ChildContent { get; set; }
RenderFragment<T> renderValue = (v) => @<span>@v</span>;
RenderFragment GetChildContent()
{
if (ChildContent is not null)
return ChildContent;
else if (FieldValue is null || FieldValue == null)
return null; // null
else if (FieldValue is string && string.Empty.Equals(FieldValue))
return null; // empty
else
return renderValue(FieldValue);
}
}