我正在添加一些事件侦听器来检查它是否是触摸设备。所以我希望事件监听器一直存在,直到页面重新加载。
我是否还应该删除事件侦听器(removeEventListener( 'touchstart', myFunction )?如果是,为什么?
它位于 VueJS 应用程序的根实例中。我在创建的部分中添加事件侦听器。
在销毁添加事件侦听器的组件之前应删除事件侦听器的主要原因是,一旦您的组件消失,事件发生时应执行的函数也会消失(在大多数情况下),因此,如果您绑定的元素监听器的寿命比组件的寿命长,当事件发生时,您会收到错误,因为找不到要执行的代码。
虽然这在大多数情况下都是边缘情况,但它往往会产生特别难以调试的错误。
最重要的是,在 SPA(这是 Vue 应用程序最常见的用法)中,不删除侦听器可能很快就会成为性能问题。
重要提示:只有您自己通过 DOM 操作添加的事件(例如:el.addEventListener())才需要删除。Vue 会自行清理(@click、@my-custom-event等...)。
| 归档时间: |
|
| 查看次数: |
2987 次 |
| 最近记录: |