在Vue中,你可以使用ResizeObserver
来监听DOM元素的宽高变化。以下是一个示例代码:
<template>
<div ref="myElement" @resize="handleResize">
<!-- DOM元素内容 -->
</div>
</template>
<script>
export default {
mounted() {
const resizeObserver = new ResizeObserver((entries) => {
// 当DOM元素的宽高发生变化时执行回调函数
this.handleResize(entries[0].contentRect);
});
resizeObserver.observe(this.$refs.myElement);
// 组件销毁时停止观察
this.$once("hook:beforeDestroy", () => {
resizeObserver.disconnect();
});
},
methods: {
handleResize(rect) {
// 在这里处理DOM元素宽高变化后的逻辑
console.log(`宽度:${rect.width}px,高度:${rect.height}px`);
},
},
};
</script>
以上示例演示了如何在Vue组件中通过ResizeObserver
来监听DOM元素的宽高变化。在mounted
钩子中创建ResizeObserver
实例,并通过$refs<