Каковы некоторые практические примеры использования MutationObserver? - PullRequest
0 голосов
/ 09 января 2019

Самое запутанное в этом API - это причина, по которой я его использую. Я знаю ReactJS и RxJS, и я привык к концепции, когда представление реагирует на изменение данных. Поэтому, наблюдая за изменениями в DOM, которые происходят определенно после некоторых мутаций в данных, я не вижу в этом особого смысла. Так что мой вопрос, когда (не) использовать это?

1 Ответ

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

Вы думаете о проблеме с ситуацией, когда вы уже на шаг впереди. Если вы используете React / RxJS, то фактическое значение MutationObserver, скорее всего, будет очень маленьким.

Однако даже в этом есть очевидная возможность использовать это. Предположим, вы пытаетесь использовать в своем приложении React библиотеку, которая явно не создана для него и каким-то образом модифицирует DOM, но хотите расширить ее или извлечь что-то из нее. Лучшим примером для этого будет увеличение FancyGrid дальше.

В настоящее время в компоненте вы вызываете такую ​​библиотеку в componentDidMount, точно так же, как построен компонент выше. Однако это просто огонь и забыл - вы не знаете, когда это будет выполнено, вы даже не знаете, что происходит "снаружи".

Введите MutationObserver. С его помощью, прежде чем связывать такую ​​библиотеку с элементом, вы можете использовать наблюдателя, чтобы получать уведомления о том, когда элементы создаются, отслеживать их и отслеживать изменения свойств. Простейшим вариантом использования этого было бы создание счетчика над (особенно трудоемким при нагрузке) сеткой.

...