Stencil.js - прослушивает изменения атрибутов класса в элементе хоста
Как я слушаю изменения в class
атрибут на элементе хоста?
2 ответа
Решение
Есть простой способ сделать это, но он может не подходить для всех ситуаций.
Просто добавьте "класс" как @Prop и @Watch:
@Prop() class: string;
@Watch('class') handleClassChange(class: string) {
console.log(class);
}
Отслеживание изменений атрибута DOM требует использования MutationObserver
,
https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver
componentDidLoad() {
// Target element that will be observed
const target = this.el;
const config = {
attributes: true,
attributeOldValue: true,
attributeFilter: ['class']
};
function subscriberCallback(mutations) {
mutations.forEach((mutation) => {
console.log(mutation);
});
}
const observer = new MutationObserver(subscriberCallback);
observer.observe(target, config);
}