javascript - איך להכין השמדה נכונה של Observer חיתוך?
אני כרגע עוטף את ה-API של IntersectionObserver לפעולה של Svelte. חלק מזה דורש ניקוי בפונקציה destroy(), למטה מה שיש לי.
function observe(node: HTMLElement, key: string) {
const observer = new IntersectionObserver(nodes => {
locations[key] = nodes[0]!.isIntersecting;
locations = locations;
});
observer.observe(node);
return {
// this is the focus of my question
destroy() {
observer.unobserve(node);
}
}
}
האם יש משהו נוסף שאני צריך לעשות כדי להרוס את ה-IntersectionObserver?
תשובה #1
לפי התיעוד של observe():
כדי להפסיק להבחין באלמנט, קראו ל-
IntersectionObserver.unobserve().
אז אני חושב שאין עוד מה לעשות.
אלטרנטיבה נוספת היא להשתמש ב-observer.disconnect() כדי להפסיק לעקוב אחרי כל האלמנטים המטרה שלו.