一般的に、Svelteでのデータフローはトップダウンです。親コンポーネントは子コンポーネントにプロップスを設定でき、コンポーネントは要素に属性を設定できますが、その逆はできません。
しかし、このルールを破ることが便利な場合があります。このコンポーネントの<input>要素を考えてみましょう。nameの値をevent.target.valueに設定するoninputイベントハンドラを追加することはできますが、少し...冗長です。他のフォーム要素ではさらに悪化します。
代わりに、bind:valueディレクティブを使用できます。
アプリ
<input bind:value={name}>これは、nameの値の変更によって入力値が更新されるだけでなく、入力値の変更によってnameが更新されることを意味します。
1
2
3
4
5
6
7
8
<script>
let name = $state('world');</script>
<input value={name} /><h1>Hello {name}!</h1>