Ниже показано, как компилятор Blazor компилирует файл .razor с кодом, определяющим элемент таблицы. Обратите внимание, что все элементы, добавленные в цикл, имеют одинаковый порядковый номер
protected override void BuildRenderTree(RenderTreeBuilder builder)
{
builder.OpenElement(0, "table");
builder.OpenElement(1, "tbody");
for (var row = 0; row < 3; row++)
{
builder.OpenElement(2, "tr");
for (var col = 0; col < 3; col++)
{
builder.OpenElement(3, "td");
builder.AddAttribute(4, "class", "tictactoe-cell");
builder.CloseElement();
}
builder.CloseElement();
}
builder.CloseElement();
builder.CloseElement();
}
}
Я бы предложил вам определить простой компонент с некоторым текстом («Blazor!») И создать его динамически в другом компоненте, сколько раз пользователь вводил в текстовое поле. Запустите и посмотрите, работает ли он. Теперь перейдите к файлу .g.cs, созданному компилятором, и посмотрите, что изначально создал компилятор. Приходите и расскажите нам о своем эксперименте.
Ваш вопрос очень важен, и его знание важно, когда мы хотим создать, например, компонент меню на основе данных, извлеченных из базы данных, списка результатов поиска профиля и т. Д.
Надеюсь, это поможет ...