如何在 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>