Почему svelte обрабатывает "значение" иначе, чем другие атрибуты?

В svelte (3.42.5) атрибуты с именем "значение" транслируются иначе, чем другие атрибуты.

Т.е. компонент

      <progress value="50" max="100"/>

переводится на

      ...
function create_fragment(ctx) {
    ...
    return {
        c() {
            progress = element("progress");
            progress.value = "50";
            attr(progress, "max", "100");
        },
        ...

Как видно, атрибут «значение» устанавливается иначе, чем «макс». Хотя это совершенно правильный код javascript в браузере, он затрудняет работу с нативной системой .

Кроме того, я спрашиваю себя, почему у svelte такая особая обработка?!? И есть ли способ его выключить?

1 ответ

Насколько мне известно, value- зарезервированное ключевое слово для установки значения этого тега / компонента.

Например: когда вы используете теги select & option, значение параметра устанавливается с помощью ключевого слова value .

      <select bind:value={selected}>
    <option value={a}>a</option>
    <option value={b}>b</option>
    <option value={c}>c</option>
</select>

Поэтому я бы сказал, что вы не можете отключить это поведение.

Ссылка: https://svelte.dev/docs#Binding_select_value

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