Как можно использовать MutationObservers, чтобы найти, когда родительский элемент удаляется из DOM? - PullRequest
0 голосов
/ 08 января 2019

Мое приложение имеет несколько MutationObservers , прикрепленных к элементам DOM внизу дерева DOM. Они должны определить, когда кто-либо из их предков был удален из DOM.

Использовать MutationObservers просто, чтобы определить, был ли удален определенный элемент или какой-либо из его дочерних элементов. Тем не менее, каков наилучший способ определить, удалены ли какие-либо элементы из родительских элементов?

Вот плункер , который демонстрирует проблему. Заметьте, что во вкладыше, когда вы нажимаете «Удалить родителя», вызывается наблюдатель мутации родительского элемента. Однако наблюдатель дочернего элемента не является.

Как мне эффективно использовать MutationObservers для проверки, когда узел удален из документа?


Редактировать

Мой вариант использования заключается в том, что я реализовал некоторые веб-компоненты, которые должны вызывать код очистки, когда они (или один из их родителей) удаляются из DOM. Я хочу, чтобы каждый веб-компонент был инкапсулирован так, чтобы он выполнял свою собственную очистку и не было глобального реестра (кроме собственного window.customElements).

1 Ответ

0 голосов
/ 08 января 2019

В качестве реализации веб-компонентов с нуля вы должны использовать собственные обратные вызовы жизненного цикла . В вашем случае, disconnectedCallback будет тем, чтобы вызвать ваш код очистки внутри компонента.

...