Skip to content

MutateObserver DOM 变化监听 ​

为单个子元素绑定 ref,使用项目内 useMutateObserver 监听 DOM 变更。

使用方式 ​

tsx
import MutateObserver from './components/mutateObserver';

export default function ObserverExample() {
  return (
    <MutateObserver
      options={{ childList: true, subtree: true, characterData: true }}
      onMutate={(records) => console.log(records)}
    >
      <div contentEditable suppressContentEditableWarning>编辑这段文字</div>
    </MutateObserver>
  );
}

API ​

属性类型说明
childrenReactElement单个原生元素,或能转发 HTMLElement ref 的组件
optionsMutationObserverInit监听哪些变更
onMutate(records, observer) => void接收变更记录

options 至少启用 childList、attributes、characterData 之一。子元素原有 ref 会被此包装器替换,不会自动合并。不要在回调内无条件修改被观察区域,以免形成循环。详细 Hook 说明见 ../../hooks/useMutateObserver/README.md。此基础组件没有独立导航页。

在实践中理解 React,在分享中共同成长。