如何使用 Svelte 的生命周期事件
Svelte 中的每個組件都會觸發幾個生命周期事件,我們可以在其中進行操作,以實現我們想要的功能。
具體而言,我們有
onMount
- 在組件渲染後觸發onDestroy
- 在組件被銷毀後觸發beforeUpdate
- 在 DOM 更新之前觸發afterUpdate
- 在 DOM 更新後觸發
我們可以通過 Svelte 觸發這些事件時安排執行特定的函數。
默認情況下,我們無法直接訪問這些方法,但是我們可以從 svelte
包中導入它們:
<script>
import { onMount, onDestroy, beforeUpdate, afterUpdate } from 'svelte'
</script>
onMount
的常見用法是從其他源獲取數據。
以下是使用 onMount
的示例:
<script>
import { onMount } from 'svelte'
onMount(async () => {
// 在組件渲染後執行某些操作
})
</script>
onDestroy
允許我們清理數據或停止在組件初始化時開始的任何操作,比如使用 setInterval
設置的計時器或定期執行的函數。
需要注意的是,如果我們從 onMount
返回一個函數,那麼它的功能與 onDestroy
相同 - 當組件被銷毀時運行該函數:
<script>
import { onMount } from 'svelte'
onMount(async () => {
// 在組件渲染後執行某些操作
return () => {
// 在組件被銷毀時執行某些操作
}
})
</script>
下面是一個實際示例,它在組件渲染後設置一個定期執行的函數,並在組件被銷毀時刪除該函數:
<script>
import { onMount } from 'svelte'
onMount(async () => {
const interval = setInterval(() => {
console.log('嘿,這裡只是檢查一下!')
}, 1000)
return () => {
clearInterval(interval)
}
})
</script>