Что это за строка внутри HTML-тега компонентов Blazor?

Я новичок в Blazor и пытаюсь понять, как Blazor отображает компоненты в HTML-теги. Если я использую простой компонент вроде этого:

<InputText @bind-Value = "testvalue" id = "sample-textbox"></InputText>

@code {
    public string testvalue = "abc123";
}

Затем я запускаю свое приложение, открываю инструменты разработки, получаю такой HTML-код:

<input id = "sample-textbox" _bl_e4f3714a-7294-49f4-9c79-90762626ed41 = "">

Какова цель _bl_e4f3714a-7294-49f4-9c79-90762626ed41?

Это может быть частью CSS-изоляции, хотя там упоминается немного другой формат имени (b-{string}).

Hans Kesting 05.09.2024 07:31
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
4
1
57
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Это просто идентификатор, который Blazor использует для управления элементами DOM точно так же, как это делают другие платформы и библиотеки.

Другие платформы используют Virtual DOMS, и идентификатор не виден, когда элементы визуализируются.

Например, Angular использует такие идентификаторы:

<div _ngcontent-ng-c1557778241 = "" class = "scrollable guidance-carousel">

Дополнительное примечание: Blazor использует этот пользовательский атрибут для идентификации элемента без необходимости перехватывать значение id элемента.

akseli 05.09.2024 00:01

Я не смог найти многого в Google. Не могли бы вы оставить здесь комментарий, где я смогу прочитать дальше? Спасибо!

Bill Kindig 05.09.2024 00:02

Добавлю сюда несколько центов: есть ветка на github с комментарием об этом. Я процитирую здесь только соответствующую часть:

Атрибуты _bl_* добавляются клиентским JS-кодом для интерактивно отображаемых элементов, имеющих @ref. Атрибуты отсутствуют в исходном HTML.
Таким образом, если вы используете только SSR, вы вообще не увидите эти атрибуты (поскольку элементы, предназначенные только для SSR, не отображаются в интерактивном режиме).

Таким образом, этот атрибут является чем-то «очень внутренним» для механизмов Blazor.

Другие вопросы по теме