Skip to main content

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

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

代わりに、bind:valueを使用することができます。

App.svelte
<input bind:value={name}>

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

Next: Numeric inputs

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