如何在Svelte中使用反应式语句

42 阅读1分钟

如何在Svelte中使用反应式语句

在Svelte中,你可以监听组件状态的变化,并更新其他变量。

例如,如果你有一个count 变量。

<script>
let count = 0
</script>

而你通过点击一个按钮来更新它。

<script>
let count = 0

const incrementCount = () => {
  count = count + 1
}
</script>

{count} <button on:click={incrementCount}>+1</button>

你可以使用特殊的语法$: 来监听count 的变化,该语法定义了一个新的块,当该块中引用的任何变量发生变化时,Svelte将重新运行该块。

下面是一个例子。

<script>
let count = 0

const incrementCount = () => {
  count = count + 1
}

$: console.log(`${count}`)
</script>

{count} <button on:click={incrementCount}>+1</button>

我使用了这个块。

$: console.log(`${count}`)

你可以写一个以上的块。

<script>
$: console.log(`the count is ${count}`)
$: console.log(`double the count is ${count * 2}`)
</script>

而且你也可以添加一个块来组合多个语句。

<script>
$: {
  console.log(`the count is ${count}`)
  console.log(`double the count is ${count * 2}`)
}
</script>

我在里面使用了console.log()的调用,但你也可以更新其他变量。

<script>
let count = 0
let double = 0

$: {
  console.log(`the count is ${count}`)
  double = count * 2
  console.log(`double the count is ${double}`)
}
</script>