SvelteonDestroy

Svelte onDestroy

要在组件被销毁时运行代码,请使用 ​onDestroy​。例如,我们可以在组件初始化时添加一个 ​setInterval​ 函数,并在它不再使用时将其清除。这样做可以防止内存泄漏。<script>

import { onDestroy } from 'svelte';

let seconds = 0;

const interval = setInterval(() =&gt; seconds += 1, 1000);

onDestroy(() =&gt; clearInterval(interval));

</script>虽然在组件初始化期间调用生命周期函数很重要,但从哪里调用它们并不重要。因此,如果我们愿意,我们可以将间隔逻辑抽象为 ​utils.js​ 中的辅助函数......import { onDestroy } from 'svelte';

export function onInterval(callback, milliseconds) {

const interval = setInterval(callback, milliseconds);

onDestroy(() =&gt; {

clearInterval(interval);

});

}...并将其导入到我们的组件中:<script>

import { onInterval } from './utils.js';

let seconds = 0;

onInterval(() =&gt; seconds += 1, 1000);

</script>