MutationObserver 使用的一些实际示例是什么?

What are some practical examples of MutationObserver use?

这个API中最令人困惑的是我为什么要使用它。我知道 ReactJS 和 RxJS,我已经习惯了视图对数据变化做出反应的概念。所以观察 DOM 的变化,这肯定发生在对数据进行一些突变之后,我看不出有什么意义。所以我的问题是什么时候(不)使用它?

你是在已经领先一步的情况下思考问题。如果您使用 React/RxJS,那么 MutationObserver 的实际值很可能会非常小。

然而,即使在此范围内,也有明显的利用它的可能性。假设您正尝试在 React 应用程序中使用一个库,该库不是明确为其构建的,并以某种方式修改了 DOM,但想进一步扩展它或从中获取一些东西。最好的例子是进一步增加 FancyGrid

目前,在组件中,您将在 componentDidMount 中调用这样的库,与构建上述组件的方式相同。然而,这只是一劳永逸——你不知道它什么时候完成执行,你甚至不知道 "outside".

上发生了什么

输入MutationObserver。有了它,在将这样的库绑定到元素之前,您可以使用观察者来通知元素何时创建、跟踪它们并跟踪 属性 更改。最简单的用例是在(加载时特别耗时)网格上方制作一个微调器。