如果我在组件中添加一个关键监听器使用
<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/