Почему 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>
Поэтому я бы сказал, что вы не можете отключить это поведение.