本文へスキップ

DOM要素のプロパティにバインドできるのと同様に、コンポーネントのプロップスにバインドできます。たとえば、この<Keypad>コンポーネントの`value`プロップスを、フォーム要素のようにバインドできます。

まず、プロップスをバインド可能としてマークする必要があります。`Keypad.svelte`内で、`$props()`宣言を`$bindable`ルーンを使用して更新します。

Keypad
let { value = $bindable(''), onsubmit } = $props();

次に、`App.svelte`に`bind:`ディレクティブを追加します。

App
<Keypad bind:value={pin} {onsubmit} />

これで、ユーザーがキーパッドを操作すると、親コンポーネントの`pin`の値がすぐに更新されます。

コンポーネントバインディングは控えめに使用してください。特に「単一の情報源」がない場合、数が多すぎるとアプリケーション全体でのデータの流れを追跡するのが困難になる可能性があります。

GitHubでこのページを編集する

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<script>
	import Keypad from './Keypad.svelte';
 
	let pin = $state('');
 
	let view = $derived(pin
		? pin.replace(/\d(?!$)/g, '•')
		: 'enter your pin');
 
	function onsubmit() {
		alert(`submitted ${pin}`);
	}
</script>
 
<h1 style="opacity: {pin ? 1 : 0.4}">
	{view}
</h1>
 
<Keypad {onsubmit} />