vue3使用ref获取元素高度
时间: 2025-01-29 21:30:25 浏览: 73
### 在 Vue3 中使用 `ref` 获取 DOM 元素的高度
为了在 Vue3 中获取 DOM 元素的高度,可以通过组合式 API 的方式来操作。具体来说,在模板中定义带有 `ref` 属性的 HTML 元素,并在 `<script setup>` 或者选项式的 `<script>` 部分初始化对应的响应式引用变量。
当组件挂载完成后,即可以在生命周期钩子函数 `onMounted` 内部访问到这个元素并读取其高度属性:
```html
<template>
<div ref="mains" class="search"></div>
</template>
<script setup lang="ts">
import { ref, onMounted } from 'vue'
const mains = ref(null)
onMounted(() => {
if (mains.value) {
const height = mains.value.clientHeight
console.log('Element Height:', height)
}
})
</script>
<style scoped lang="less">
.search {
width: 100px;
height: 100px;
margin: 0 auto;
background-color: greenyellow;
}
</style>
```
上述代码展示了如何声明一个名为 `mains` 的响应式引用对象用于存储目标 DOM 节点[^1]。一旦页面加载完毕并且组件成功渲染至浏览器文档流之后,就会触发 `onMounted()` 生命周期回调,在这里可以直接通过 `.value` 访问实际的 DOM 对象进而调用它的原生 JavaScript 方法或属性比如 `clientHeight` 来取得当前元素可视区域内的真实尺寸[^2]。
值得注意的是,由于 TypeScript 类型推断机制的存在,最好为 `ref()` 明确指定预期的数据类型以避免潜在错误;另外还需注意检查 `mains.value !== null && mains.value !== undefined` ,防止未及时更新导致的操作失败情况发生[^3]。
阅读全文
相关推荐


















