svelte-3 - 听众是否像 <svelte :window on:keydown={handleKeydown}/> component scoped or global?

标签 svelte-3

如果我在组件中添加一个关键监听器使用

<svelte:window on:keydown={handleKeydown}/>

根据 https://svelte.dev/tutorial/svelte-window , 组件销毁时监听器是否被移除?我想确定我不会导致任何类型的内存泄漏。

最佳答案

是的,如果你愿意,你可以看看生成的JS代码,你会发现:

m(target, anchor) {
    dispose = listen(window, "keydown", /*handleKeydown*/ ctx[0]);
},
...
...
d(detaching) {
    dispose();
}

m()方法是挂载函数,d()是销毁函数。您可以看到在 m() 中添加了监听器,然后在 d() 中将其删除。这是简化的,但您可以通过调查 Svelte 源代码找到更多信息 :)

祝你好运!

关于svelte-3 - 听众是否像 <svelte :window on:keydown={handleKeydown}/> component scoped or global?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60546757/

相关文章:

javascript - Svelte 组件从 URL 哈希参数存储-加载状态到-

svelte - 如何返回 Svelte 组件的渲染 HTML?

api - SvelteKit 更新请求

javascript - 如何在 svelte 文件中使用 electron 方法 - Svelte 3 - 或者还有其他方法吗?

javascript - 如何反转 svelte {#each ...} block 中的顺序

javascript - Svelte 3,异步 onMount 还是有效的替代方案?

if-statement - Svelte 中是否有更好的方法来包含条件 HTML 元素

svelte-3 - Svelte - 通过使用 :action to component child