用 ResizeObserver 解决 canvas 尺寸自适应与重绘抖动问题
在数据看板或图表组件里,canvas 经常需要跟随容器尺寸变化重绘。早期做法是监听 window 的 resize 事件,再通过 getBoundingClientRect 读取父元素宽高。但容器尺寸变化并不总是由窗口缩放引起:侧边栏折叠、标签页切换、flex 布局重新分配空间,都会让 canvas 的父级尺寸突变,而 window 上并不会触发 resize。另一种做法是定时轮询 offsetWidth,虽然能兜住大部分场景,但会带来无意义的强制同步布局,在低端设备上很容易掉帧。ResizeObserver 提供了一种在元素尺寸变化时直接收到通知的能力,它只观察元素本身,不依赖窗口,也能避免...