Skip to main content

原則、Svelteのデータフローはトップダウンです。親コンポーネントは子コンポーネントにプロパティをセットできますし、コンポーネントは要素に属性をセットできますが、その逆はできません。

時々、そのルールを破ると便利なことがあります。このコンポーネントの <input> 要素の例で考えてみましょう。oninput イベントハンドラを追加して、name の値を event.target.value に設定できますが、それは少し…面倒(boilerplatey)です。想像がつくと思いますが、他のフォーム要素ではそれがさらに悪化します。

代わりに、bind:value ディレクティブを使用することができます。

App
<input bind:value={name}>

これは name の値が変更されると input の値が更新されるだけでなく、input の値が変更されると name の値が更新されることを意味します。

Edit this page on GitHub

1
2
3
4
5
6
7
8
<script>
	let name = $state('world');
</script>
 
<input value={name} />
 
<h1>Hello {name}!</h1>