Vue 3 中如何正确监听元素尺寸变化:ResizeObserver 与自定义指令的实战
做后台管理系统的图表模块时,经常遇到一个情况:容器宽度明明是 100%,图表初始化后却挤在角落,或者拖拽侧边栏后图表没有重新计算尺寸,留出大片空白。这类问题大多不是 ECharts 或 Chart.js 本身的问题,而是 JS 没有感知到元素尺寸变化。传统的 window.resize 只能监听视口变化,但元素尺寸变动还可能来自 Flex 布局调整、父级 display 切换、字体加载导致的回流,甚至浏览器 DevTools 打开时的布局变化。ResizeObserver 就是为此而生,它能观察任意元素的 content-box 或 border-box 尺寸,在尺寸变化时触发回调。这篇文章会...