2

如何监听class宿主元素属性的变化?

4

2 回答 2

2

有一种简单的方法可以做到这一点,但这可能并不适用于所有情况。

只需将“类”添加为@Prop 和@Watch:

@Prop() class: string;
@Watch('class') handleClassChange(class: string) {
    console.log(class);
}
于 2019-04-26T17:32:35.730 回答
0

跟踪 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);
}
于 2019-04-26T06:28:54.053 回答