addEventListener + removeEventListener
tl;dr: Avoid memory leaks by ensuring that if you register a callback to addEventListener
you also unregister it with removeEventListener
later on.
const handleVisibilityChange = (event) => {
console.log(event);
};
document.addEventListener("visibilitychange", handleVisibilityChange);
// when you no longer need to subscribe to `visibilitychange`
document.removeEventListener("visibilitychange", handleVisibilityChange);