Vue3 Ref 获取真实 DOM 实战:选项式与组合式 API 详解

作者:组件花园时间:2026-10-30 20:19:57浏览:640

本文详解 Vue3 中通过 Ref 获取真实 DOM 的方法。对比选项式 API 中 this.$refs 的使用与组合式 API 中 ref() 函数的响应式引用机制,涵盖普通元素与子组件的获取方式,并提供完整代码示例,帮助开发者在 MVVM 框架下高效操作 DOM。

正文

在使用 Vue、React 等 MVVM 框架进行项目开发时,通常无需直接手动操作 DOM,但在某些场景下仍不可避免,例如获取元素的宽高、元素在屏幕上的 XY 坐标位置或实现 DIV 拖拽等功能。随着 Vue 版本的迭代,Vue3 中获取真实 DOM 的方法也发生了相应变化。

正文

Vue3 与 DOM 操作

一、前言

ref() 函数用于注册元素或子组件的引用。它接收一个内部值,并返回一个响应式的、可更改的 ref 对象,该对象仅包含一个指向其内部值的属性 .value。

二、利用 Ref 获取真实 DOM

  • 在选项式 API 中
<template>
  <!-- 普通元素 -->
  <div ref='eleBox' class='box'></div>
  <!-- 子组件 -->
  <ChildComponent ref='childCom' />
</template>
<script>
  export default {
    components: {
      ChildComponent,
    },
    mounted() {
      let eleBox = this.$refs.eleBox
      // eleBox 就是获取的真实DOM对象,可以进行DOM相关的操作
      eleBox.style.backgroundColor = '#f0f'
      // 获取子组件实例
      console.log(this.$refs.childCom)
    }
  }
</script>
  • 在组合式 API 中
<!-- 普通元素 -->
<div ref='eleBox' class='box'></div>
<!-- 子组件 -->
<ChildComponent :ref="(el) => childCom = el" />
<script setup>
  import { ref } from 'vue'
  let eleBox = ref()
  // eleBox.value 就是获取的真实DOM对象
  eleBox.value.style.width = '200px'
  let childCom = ref()
  // childCom.value 就是获取的子组件实例对象
</script>

以上即为 Vue3 中通过 Ref 获取真实 DOM 的实战内容,更多关于 Vue3 Ref 获取真实 DOM 的资料,敬请关注本站其他相关文章!

作者最新文章