メインコンテンツへスキップ

一般的に、Svelteでのデータフローはトップダウンです。親コンポーネントは子コンポーネントにプロップスを設定でき、コンポーネントは要素に属性を設定できますが、その逆はできません。

しかし、このルールを破ることが便利な場合があります。このコンポーネントの<input>要素を考えてみましょう。nameの値をevent.target.valueに設定するoninputイベントハンドラを追加することはできますが、少し...冗長です。他のフォーム要素ではさらに悪化します。

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

アプリ
<input bind:value={name}>

これは、nameの値の変更によって入力値が更新されるだけでなく、入力値の変更によってnameが更新されることを意味します。

GitHubでこのページを編集

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