安装 element-resize-detector 依赖
npm install element-resize-detector -S
一睹为快
import ElementResizeDetector from 'element-resize-detector';
const isCollapsed = ref(false)
// 引用 layout 元素对象
const layout = ref(null)
const elementResizeDetector = ref(null)
// 开启 layout 元素尺寸大小变化监听器
const startLayoutElmSizeListener = function() {
elementResizeDetector.value = new ElementResizeDetector({
strategy: 'scroll'
})
elementResizeDetector.value.listenTo(layout.value, (entries, observer) => {
const width = entries.offsetWidth
// 尺寸小于lg时,收起侧边栏,节省位置
if (width < 992) {
isCollapsed.value = true
} else {
isCollapsed.value = false
}
})
}
// 结束 layout 元素尺寸大小变化监听器
const endLayoutElmSizeListener = function() {
elementResizeDetector.value.uninstall(layout.value)
}
讲解
通过 entries 对象可以拿到当前元素的宽度,然后就可以做一些实际的业务处理。不用的使用,记得结束掉这个监听器。