MutationObserver 使用的一些实际示例是什么?
What are some practical examples of MutationObserver use?
这个API中最令人困惑的是我为什么要使用它。我知道 ReactJS 和 RxJS,我已经习惯了视图对数据变化做出反应的概念。所以观察 DOM 的变化,这肯定发生在对数据进行一些突变之后,我看不出有什么意义。所以我的问题是什么时候(不)使用它?
你是在已经领先一步的情况下思考问题。如果您使用 React
/RxJS
,那么 MutationObserver
的实际值很可能会非常小。
然而,即使在此范围内,也有明显的利用它的可能性。假设您正尝试在 React 应用程序中使用一个库,该库不是明确为其构建的,并以某种方式修改了 DOM,但想进一步扩展它或从中获取一些东西。最好的例子是进一步增加 FancyGrid。
目前,在组件中,您将在 componentDidMount
中调用这样的库,与构建上述组件的方式相同。然而,这只是一劳永逸——你不知道它什么时候完成执行,你甚至不知道 "outside".
上发生了什么
输入MutationObserver
。有了它,在将这样的库绑定到元素之前,您可以使用观察者来通知元素何时创建、跟踪它们并跟踪 属性 更改。最简单的用例是在(加载时特别耗时)网格上方制作一个微调器。
这个API中最令人困惑的是我为什么要使用它。我知道 ReactJS 和 RxJS,我已经习惯了视图对数据变化做出反应的概念。所以观察 DOM 的变化,这肯定发生在对数据进行一些突变之后,我看不出有什么意义。所以我的问题是什么时候(不)使用它?
你是在已经领先一步的情况下思考问题。如果您使用 React
/RxJS
,那么 MutationObserver
的实际值很可能会非常小。
然而,即使在此范围内,也有明显的利用它的可能性。假设您正尝试在 React 应用程序中使用一个库,该库不是明确为其构建的,并以某种方式修改了 DOM,但想进一步扩展它或从中获取一些东西。最好的例子是进一步增加 FancyGrid。
目前,在组件中,您将在 componentDidMount
中调用这样的库,与构建上述组件的方式相同。然而,这只是一劳永逸——你不知道它什么时候完成执行,你甚至不知道 "outside".
输入MutationObserver
。有了它,在将这样的库绑定到元素之前,您可以使用观察者来通知元素何时创建、跟踪它们并跟踪 属性 更改。最简单的用例是在(加载时特别耗时)网格上方制作一个微调器。