Svelte onDestroy

2023-02-21 15:20 更新

要在組件被銷毀時運行代碼,請使用 ?onDestroy?。

例如,我們可以在組件初始化時添加一個 ?setInterval? 函數(shù),并在它不再使用時將其清除。這樣做可以防止內(nèi)存泄漏。

<script>
	import { onDestroy } from 'svelte';

	let seconds = 0;
	const interval = setInterval(() => seconds += 1, 1000);

	onDestroy(() => clearInterval(interval));
</script>

雖然在組件初始化期間調(diào)用生命周期函數(shù)很重要,但從哪里調(diào)用它們并不重要。因此,如果我們愿意,我們可以將間隔邏輯抽象為 ?utils.js? 中的輔助函數(shù)......

import { onDestroy } from 'svelte';

export function onInterval(callback, milliseconds) {
	const interval = setInterval(callback, milliseconds);

	onDestroy(() => {
		clearInterval(interval);
	});
}

...并將其導(dǎo)入到我們的組件中:

<script>
	import { onInterval } from './utils.js';

	let seconds = 0;
	onInterval(() => seconds += 1, 1000);
</script>


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號