直接回答:监听元素尺寸变化用 ResizeObserver,它是浏览器原生 API,比定时轮询准确、比 iframe 方案简单;回调里拿到的是 contentRect,记得在组件卸载时 unobserve。

监听div的变化,也就是resize

ResizeObserver

MutationObserver

1
2
3
4
5
6
7
8
9
10
11
12
useEffect(() => {
if (!ref.current) {
return;
}
const observer = new ResizeObserver((a: any, b: any) => {
resize()
});
observer.observe(ref.current)
return () => {
observer.disconnect();
};
}, [ref.current]);

这篇笔记整理自我自己的实践记录,如果做法有出入,或者你踩过别的坑,欢迎到留言板一起聊聊。

站内搜索

没有找到内容!