跳至主要内容

正如我们在之前的练习中看到的,状态对重新赋值做出反应。但它也对变异做出反应——我们称之为深层响应式

使 numbers 成为一个响应式数组

应用
let numbers = $state([1, 2, 3, 4]);

现在,当我们更改数组时...

应用
function addNumber() {
	numbers[numbers.length] = numbers.length + 1;
}

...组件会更新。或者更好的是,我们可以使用 push 代替来向数组中添加元素

应用
function addNumber() {
	numbers.push(numbers.length + 1);
}

深层响应式是使用代理实现的,对代理的变异不会影响原始对象。

在 GitHub 上编辑此页面

上一页 下一页
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<script>
	let numbers = [1, 2, 3, 4];
 
	function addNumber() {
		// TODO implement
	}
</script>
 
<p>{numbers.join(' + ')} = ...</p>
 
<button onclick={addNumber}>
	Add a number
</button>