Метод destroy используется для полного удаления
экземпляра всплывающей подсказки, созданной с помощью Tippy.js. Он
освобождает все внутренние обработчики событий, стили и элементы DOM,
связанные с конкретной подсказкой, предотвращая утечки памяти и позволяя
полностью удалить компонент из страницы.
tippyInstance.destroy();
tippyInstance — объект, возвращаемый функцией
tippy(), представляющий конкретную подсказку.destroyУдаление DOM-элементов Элемент подсказки,
добавленный в DOM (popper), удаляется полностью. После
вызова метода destroy попытка обращения к DOM-элементу
через tippyInstance.popper вернет null или
undefined.
Снятие обработчиков событий Все слушатели
событий, которые были установлены на целевой элемент
(reference) и на саму подсказку (например,
mouseenter, focus, click),
удаляются. Это важно для предотвращения утечек памяти в крупных
приложениях.
Деактивация анимаций и таймеров Если для
подсказки были установлены задержки показа/скрытия (delay),
таймеры автоматически очищаются. Анимации исчезают немедленно без
остаточных эффектов.
Сброс состояния экземпляра Все свойства,
связанные с подсказкой (visible, props,
state), больше не актуальны. Попытка использовать метод
show или hide на уничтоженном экземпляре
приведет к ошибке или не даст эффекта.
// Создание подсказки
const button = document.querySelector('#myButton');
const tip = tippy(button, {
content: 'Это подсказка',
placement: 'top',
});
// Показ подсказки
tip.show();
// Полное удаление подсказки
tip.destroy();
// После destroy методы show/hide не работают
tip.show(); // ничего не происходит
Динамическое удаление элементов Когда целевой
элемент удаляется из DOM, необходимо вызвать destroy, чтобы
очистить все связанные ресурсы.
const dynamicButton = document.querySelector('.dynamic-btn');
const tip = tippy(dynamicButton, { content: 'Временная подсказка' });
// Позже элемент удаляется
dynamicButton.remove();
tip.destroy();Пересоздание подсказок с новыми настройками Иногда требуется изменить конфигурацию подсказки. Вместо изменения старого экземпляра проще уничтожить старый и создать новый:
const tip = tippy(button, { content: 'Старая подсказка' });
tip.destroy();
const newTip = tippy(button, { content: 'Новая подсказка', placement: 'bottom' });Очистка ресурсов при SPA (Single Page
Application) В приложениях с динамической навигацией
destroy помогает предотвращать накопление неиспользуемых
подсказок при переходах между страницами.
Множественные экземпляры Если к одному элементу
применяются несколько Tippy-подсказок, destroy удаляет
только конкретный экземпляр. Остальные продолжают работать.
Взаимодействие с коллекциями Для удаления всех подсказок, созданных через селектор:
const tips = tippy('.has-tooltip', { content: 'Подсказка' });
tips.forEach(tip => tip.destroy());Необратимость После вызова destroy
экземпляр нельзя восстановить. Для нового использования необходимо
создавать новый объект через tippy().
Отсутствие побочных эффектов Метод не влияет на другие элементы или подсказки. Он локализован только на конкретный экземпляр.
Метод destroy является обязательным инструментом для
управления жизненным циклом подсказок в Tippy.js, особенно в
динамических интерфейсах, где элементы добавляются и удаляются из DOM.
Его правильное использование предотвращает утечки памяти, сохраняет
производительность и позволяет контролировать поведение подсказок на
страницах с большим количеством интерактивных компонентов.