跳至主要内容

就像你可以绑定到 DOM 元素的属性一样,你也可以绑定到组件的 Props。例如,我们可以将此 <Keypad> 组件的 value Props 绑定,就像它是一个表单元素一样。

首先,我们需要将 Props 标记为可绑定。在 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} />