如果我在使用 HMR 的开发环境中(例如,codeandbox),我该如何避免创建额外的 DOM 事件侦听器?
例如,这是一个 simple sandbox:
document.body.addEventListener("click",() => {
console.log("Hi!");
});
document.body.style.backgroundColor = "green";
对 backgroundColor
的任何更新都会导致额外注册的事件侦听器(除非我完全刷新页面)。
我知道 codeandbox 有一个 Hard Reload on Change
选项。但是这里有没有其他约定/策略可以让我保留 HMR,但避免重复事件?