> Что такое Mutation Observer и для чего он нужен? (JavaScript)
Уровень: junior · Роль: frontend · Категория: Технические вопросы
Компании: Сбер
Стек: JavaScript
> Пример ответа
Mutation Observer - это встроенный API браузера, который позволяет отслеживать изменения в DOM-дереве. Он нужен для реактивного реагирования на динамические изменения структуры, атрибутов или текстового содержимого элементов без необходимости использовать устаревшие методы вроде Mutation Events или постоянного опроса (polling).
Основные сценарии использования:
- Мониторинг добавления/удаления дочерних узлов (например, для ленивой загрузки или кастомного рендеринга).
- Отслеживание изменений атрибутов (например, для синхронизации состояния UI с данными).
- Реагирование на изменение текста в элементе (например, для автосохранения в редакторе).
Пример кода:
JAVASCRIPTconst targetNode = document.getElementById('myElement');const config = { childList: true, subtree: true, attributes: true };const callback = (mutationsList) => {for (const mutation of mutationsList) {if (mutation.type === 'childList') {console.log('Добавлены/удалены узлы:', mutation.addedNodes, mutation.removedNodes);} else if (mutation.type === 'attributes') {console.log('Изменён атрибут:', mutation.attributeName);}}};const observer = new MutationObserver(callback);observer.observe(targetNode, config);// Позже, когда наблюдение больше не нужно:observer.disconnect();
Mutation Observer эффективен, так как работает асинхронно и не блокирует основной поток, а также позволяет группировать изменения в один коллбэк.
> Похожие задачи по frontend
Можно ли получить данные объекта response до преобразования в json в JavaScript
Что такое Blob в JavaScript и для чего он используется?
Что такое Resize Observer и для чего он нужен?
Как из объекта String получить примитив строки в JavaScript?
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью