在 DOM 中,每个输入值都是字符串。当你处理数值输入(type="number"
和 type="range"
)时,这很不方便,因为这意味着你必须记住在使用 input.value
之前强制转换它。
使用 bind:value
,Svelte 会为你处理它。
应用
<label>
<input type="number" bind:value={a} min="0" max="10" />
<input type="range" bind:value={a} min="0" max="10" />
</label>
<label>
<input type="number" bind:value={b} min="0" max="10" />
<input type="range" bind:value={b} min="0" max="10" />
</label>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<script>
let a = $state(1);
let b = $state(2);
</script>
<label>
<input type="number" value={a} min="0" max="10" />
<input type="range" value={a} min="0" max="10" />
</label>
<label>
<input type="number" value={b} min="0" max="10" />
<input type="range" value={b} min="0" max="10" />
</label>
<p>{a} + {b} = {a + b}</p>