Vue:通过ref获取DOM元素

2024-01-09

一、场景描述

我们在页面的开发过程中,经常需要操作 dom 元素,来实现我们需要的效果。
以往 js 中,我们是通过给 dom 添加 id ,然后,通过 js 代码 document 来获取这个 dom

简写代码案例:

<h2 id="test">这里是h2标签</h2>

<script>
	document.getElementById('test')
</script>

二、使用ref获取dom元素

1、ref加在html元素上

我们学习 Vue 之后,就不在使用这个方法来获取 dom 元素了。
一般,我们在 Vue 中,都是在 vc 中操作 dom
所以,这个时候,我们使用 ref 属性来获取 dom ,从而实现操作效果。

简写代码案例:

<h2 v-text="msg" ref="title"></h2>


<script>
	console.log(this.$refs.title);
</script>

效果展示:
在这里插入图片描述

2、ref加在vue组件上

简写代码案例:

<School ref="sch"/>
<script>
	console.log(this.$refs.sch);
</script>

效果展示:
在这里插入图片描述

3、直接输出$refs

<h2 v-text="msg" ref="title"></h2>
<button @click="showDOM" ref="btn">点我输出上方的DOM元素</button>
<School ref="sch"/>

<script>
	console.log(this.$refs);
</script>

效果展示:
在这里插入图片描述

三、总结

  1. 被用来给元素或子组件注册引用信息(id的替代者)
  2. 应用在html标签上获取的是真实DOM元素,应用在组件标签上是组件实例对象(vc)
  3. 使用方式:
    1. 打标识: <h1 ref="xxx">.....</h1> <School ref="xxx"></School>
    2. 获取: this.$refs.xxx

这对后面学习组件间通信非常有用!

四、完整代码

<template>
    <div>
        <h2 v-text="msg" ref="title"></h2>
        <button @click="showDOM" ref="btn">点我输出上方的DOM元素</button>
        <School ref="sch"/>
    </div>
</template>

<script>
    //App组件是汇总所有的组件的组件,所以,这里需要引入所有的它直接管理的子组件
    //引入School组件
    import School from './components/School'
    export default {
        name: "App",
        components:{School},
        data() {
            return {
                msg:"欢迎学习Vue!"
            }
        },
        methods:{
            showDOM(){
                console.log(this.$refs.title) //真实DOM元素
                console.log(this.$refs.btn) //真实DOM元素
                console.log(this.$refs.sch) //School组件的实例对象(vc)
            }
        }
    }
</script>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vue:通过ref获取DOM元素 的相关文章

随机推荐

  • 全方位解析d3dx9_43.dll丢失的处理方法,快速解决dll丢失问题

    当我们在Windows 10操作系统上运行游戏时 却无法找到d3dx9 43 dll文件 我们经常会遇到一些错误提示 其中之一就是 找不到d3dx9 43 dll 这个错误通常出现在运行某些游戏或应用程序时 它会导致程序无法正常运行 小编将
  • 系列一、 单例设计模式

    一 单例设计模式 1 1 概述 单例模式 Singleton Pattern 是Java中最简单的设计模式之一 这种类型的设计模式属于创建者模式 它提供了一种创建对象的最佳方式 这种模式涉及到一个单一的类 该类负责创建自己的对象 同时确保只
  • 【计算机开题报告】 网上茶叶销售平台设计与开发

    一 选题依据 简述国内外研究现状 生产需求状况 说明选题目的 意义 列出主要参考文献 1 研究背景 随着社会经济的迅速发展和科学技术的全面进步 以计算机与网络技术为基础的信息系统正处于蓬勃发展的时期 随着经济文化水平的提高 近年来 随着科学
  • 基于springboot+vue实现街球社区网站项目设计与演示【附项目源码+论文说明】

    基于springboot实现街球社区网站项目设计与演示 摘要 本文主要讲述了基于SpringBoot Vue模式的街球社区网站的设计与实现 这里所谓的街球社区网站是通过类似于百度贴吧之类的网上论坛使得所有的街球爱好者有一个可以互相交流的平台
  • Java版企业电子招投标系统源代码,支持二次开发,采用Spring cloud技术

    在数字化时代 采购管理也正经历着前所未有的变革 全过程数字化采购管理成为了企业追求高效 透明和规范的关键 该系统通过Spring Cloud Spring Boot2 Mybatis等先进技术 打造了从供应商管理到采购招投标 采购合同 采购
  • AI动作冒险电影《角斗士2:破晓之争》(上)

    AI动作冒险电影 角斗士2 破晓之争 上 在罗马帝国的疆域上 角斗士竞技场一直是民众热议的焦点 然而 当权者为了利益 将角斗士的生死视作儿戏 将人民视为取乐的工具 罗马帝国的野心在和平时期逐渐膨胀 终于引来了内战与分裂 角斗士2 破晓之争
  • 华为认证 | HCIP和HCIE难度差多了?

    许多有志于在ICT领域发展的人士 都希望获得华为的HCIP或HCIE认证 那么 考取这些认证到底 需要多少钱 HCIP和HCIE的 难度又存在怎样的差异 下面将为您揭晓答案 01 考华为HCIE多少钱 考试费用 华为HCIE认证考试的费用主
  • 【python、pytorch】

    什么是Pytorch Pytorch是一个基于Numpy的科学计算包 向它的使用者提供了两大功能 作为Numpy的替代者 向用户提供使用GPU强大功能的能力 做为一款深度学习的平台 向用户提供最大的灵活性和速度 基本元素操作 Tenors张
  • 弹窗找不到iutils.dll是怎么回事?需要怎么解决呢?分享多种方法

    在计算机使用过程中 我们经常会遇到一些错误提示 其中之一就是 iutils dll丢失 iutils dll是一款系统的动态链接库文件 主要用于支持某些软件和游戏的启动和运行 如果开机提示iutils dll丢失 可能会导致相关软件和游戏无
  • 如何查看崩溃日志

    目录 描述 思路 查看ipa包崩溃日志 简单查看手机崩溃信息几种方式 方式1 手机设置查看崩溃日志 方式2 Xocde工具 方式3 第三方软件克魔助手 环境配置 实时日志 奔溃日志分析 方式四 控制台资源库 线上崩溃日志 线上监听crash
  • 工程管理系统功能设计与实践:实现高效、透明的工程管理

    在现代化的工程项目管理中 一套功能全面 操作便捷的系统至关重要 本文将介绍一个基于Spring Cloud和Spring Boot技术的Java版工程项目管理系统 结合Vue和ElementUI实现前后端分离 该系统涵盖了项目管理 合同管理
  • 2.4G SOC收发芯片XL2412P,适用于无线键鼠,遥控器等多种场景

    XL2412P芯片是 款高性能低功耗的SOC集成无线收发芯片 集成MO核MCU 工作在2 400 2 483GHz世界通用ISM频段 该芯片集成了射频接收器 射频发射器 频率综合器 GFSK 调制器 GFSK解调器等功能模块 并且支持一对多
  • 2024年全球网安行业趋势预测TOP20 | FreeBuf年度盘点

    2023年 全球网络安全态势和2022年相比未见好转 在勒索攻击领域更是愈发严重 大量巨头型企业遭遇勒索攻击 勒索赎金金额也在持续上升 据网络安全公司Crowdstrike Holdings数据显示 针对大公司 银行 医院或政府机构的勒索攻
  • 软件测试/测试开发全日制|Pytest结合yaml实现数据驱动

    前言 我们之前介绍过pytest的参数化 我们使用了 pytest mark parametrize argnames argvalues 来实现批量传送参数的目的 但是我们不进行数据驱动的话 我们一旦对数据进行变更 就需要在代码里对我们的
  • MySQL中设置自增主键id从1开始

    可能遇到过这种问题 当你只想新增一条数据时 发现使用Insert语句后 发现id并不是从1开始的 握草 怎么回事 其实很简单 通过执行一下SQL 对应你的表就可以解决 ALTER TABLE user AUTO INCREMENT 1 具体
  • 题解 | #链表中的节点每k个一组翻转#C++暴力遍历解法

    求大家投下我们腾讯吧 发的一堆sp被鸽了 大数据面试题 Hive 华为14A还是保研华中科技大学 求大家投下我们腾讯吧 发的一堆sp被鸽了 终极 2024校招八股文 MySQL索引 第一篇 招芯片验证实习生 碰到渣导悲哀3年 给秋招画个句号
  • 锚定「中央计算+区域控制」,确定性机遇已凸显!

    中央计算 区域控制 的新一代整车电子架构 已经成为车企继电动化 智能化后的新竞争焦点 有关整车计算与域控 业界普遍认为将过去在不同域 座舱 智驾等 功能转移到集中的计算平台 可以更容易地进行整车OTA 以及灵活部署新功能 同时 基于通用操作
  • Web测试是在测什么?容易被忽视的小细节总结!

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 2k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 网页bug怎么都测不出来?赶紧进来看看吧

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 2k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • Vue:通过ref获取DOM元素

    一 场景描述 我们在页面的开发过程中 经常需要操作 dom 元素 来实现我们需要的效果 以往 js 中 我们是通过给 dom 添加 id 然后 通过 js 代码 document 来获取这个 dom 简写代码案例 h2 这里是h2标签 h2