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 源代码了解更多信息:)
祝你好运!
推荐阅读
- android - 使用 mockito 和 kotlin 协程流程的单元测试 viewModel
- python - Django Docker 如何只在容器中迁移?
- json - 错误:'列表
' 不是类型 'Map 的子类型 ' - material-ui - [KeyboardDatePicker]:如何在材料 UI/pickers 中增加 KeyboardDatePicker 的字体大小反应
- android - 如何在 Android 中通过麦克风实现音乐可视化?
- javascript - 4.5.12 vue-cli 需要 vue@2.6.12 吗?
- java - 如何从列表中创建一个长号码
? - oracle - 用于分析和报告的建模数据
- sql - 应用 where 子句时不显示间隔
- c++ - 这个 sprintf 的 C++ 等价物是什么?