Vue获取子组件实例对象 ref 属性

2023-10-26

在 Vue 中推荐使用 ref 属性获取 DOM 元素,这种方式可以提高性能。

如果将 ref 属性使用在组件上,那么返回的就是这个组件的实例对象。

使用方式:`<p ref="xxx">` 或 `<Banner ref="xxx">` 。

获取方式:this.$refs.xxx

1.原生 JS 获取 DOM 元素【不推荐】:

<template>
    <div>
        <h2>主页</h2>
        <p id="title">{{ msg }}</p>
        <button @click="getDOM">点击获取DOM元素</button>
    </div>
</template>

<script>
export default {
    name: 'Home',
    data() {
        return {
            msg: "哇哈哈哈!"
        }
    },
    methods: {
        getDOM() {
            // 通过原生 JS 获取 DOM 元素
            console.log(document.getElementById("title"));
        }
    }
}
</script>

2. 通过 ref 属性获取 DOM 元素【推荐】:

<template>
    <div>
        <h2>主页</h2>
        <p ref="title">{{ msg }}</p>
        <button @click="getDOM">点击获取DOM元素</button>
    </div>
</template>

<script>
export default {
    name: 'Home',
    data() {
        return {
            msg: "哇哈哈哈!"
        }
    },
    methods: {
        getDOM() {
            // 通过 ref 属性获取 DOM 元素
            console.log(this.$refs.title);
            console.log(this);
        }
    }
}
</script>

:ref 属性就是 id 的替代者,会将绑定 ref 属性的元素添加到 Vue 实例对象上,可以通过 $refs 属性获取这个 DOM 元素。

 

 


 获取子组件实例对象:

首先需要在 components 文件夹内创建一个子组件。例如:Banner.vue 组件。

<template>
    <div>
        <h2>轮播图</h2>
        <p>图片数量:{{ num }}</p>
    </div>
</template>

<script>
export default {
    name: "Banner",
    data() {
        return {
            num: 5
        }
    }
}
</script>


然后在 Home.vue 页面引入 banner.vue 组件。并给组件绑定 ref 属性。

<template>
    <div>
        <h2>主页</h2>
        <p ref="title">{{ msg }}</p>
        <button @click="getDOM">点击获取DOM元素</button>
        <Banner ref="ban"></Banner>
    </div>
</template>

<script>
import Banner from "../components/Banner";
export default {
    name: 'Home',
    components: { Banner },
    data() {
        return {
            msg: "哇哈哈哈!"
        }
    },
    methods: {
        getDOM() {
            // 通过 ref 属性获取子组件实例对象
            console.log(this.$refs.ban);
            console.log(this.$refs.ban.num);
        }
    }
}
</script>

:如果在组件上绑定 ref 属性,那么获取到的就是这个组件的实例对象。并且可以通过这个对象,使用子组件内的数据和方法,或传递参数。

 

原创作者:吴小糖

创作时间:2023.3.24

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vue获取子组件实例对象 ref 属性 的相关文章

  • 在 HTML5 Javascript 中将 BlobBuilder 转换为字符串

    function blobToString blob var reader new FileReader var d reader onloadend function d callback reader result console lo
  • 显示具有多个父代的 D3 树

    我目前有this http bl ocks org mbostock 4339083图已实现 我希望在描述具有多个父节点的子节点时保持结构和可折叠性 有没有办法做到这一点 我研究了力图 但我也想保留一组层次结构 这意味着 1 级的父级可以有
  • 在 Internet Explorer 中使用什么来监视 jscript 内存使用情况

    我们正在调试 GWT 应用程序 在 Firefox 中运行正常 在 IE6 0 中开始运行正常 但一段时间后 它就会崩溃并开始爬行 经过一些测试后 我们怀疑存在一些内存问题 使用了太多内存 内存泄漏等 除了使用taskmanager和pro
  • Angular.js:如何从无序列表中获取 orderBy 或过滤器来工作?

    尝试根据价格和评级 在返回的对象中 进行排序 我宁愿用 ng click 和 li 来代替使用选择菜单 有没有办法做到这一点 我环顾四周 这是我能想到的最接近的 ul class restaurant filter li i class i
  • jQuery .push 到 .get 调用中的数组给出空结果

    谁能告诉我为什么下面给我一个空字符串 当我console log contentArray in the get 回调函数它显示数据 但是当我尝试在下面的代码中执行它时 结果为空 sectionArray contentArray func
  • 想要动态处理与分页相关的页码显示:ReactJS

    我有一些分页逻辑工作得很好 唯一的问题是我只能让它显示并固定数量的页面可供选择 现在我已经把它放到了 5 页 但我希望它能够根据总记录动态更改 假设我有 100 条记录 每页限制为 10 条 将有 10 页 现在我只能让它以这种方式显示 第
  • nodejs (libuv) 事件循环是否在一个阶段(队列)中执行所有回调,然后再进入下一阶段或以循环方式运行?

    我正在研究 Node js 中 libuv 提供的事件循环 我遇到了关注 Deepal Jayasekara 的博客 https blog insiderattack net event loop and the big picture n
  • 如何在网站上使用 svg 元素制作块的屏幕截图?

    我在网站上创建了一个构造函数 其本质是将所选元素及其颜色 svg中的元素 添加到访问者选择的背景和背景颜色 png中的背景 中 然后必须单击 保存 结果 按钮并仅执行工作区的屏幕截图 我写了这个脚本 但它需要屏幕截图 但只有背景 并忽略选定
  • 如何使用 Greasemonkey 监视静态 HTML 页面的更改?使用哈希?

    我希望我的 Greasemonkey 脚本仅在其访问的静态页面具有与以前完全相同的内容时运行 现在我可以设置一个包含该页面哈希的变量 我正在寻找一种动态散列页面的方法 以便我可以将我的散列与生成的散列进行比较 关于如何即时实现散列的任何想法
  • React autoFocus 将光标设置为输入值的开头

    我有一个受控输入 最初显示一个值 我已将该输入设置为自动聚焦 但当我希望它出现在末尾时 光标出现在输入的开头 我知道这可能是因为自动对焦是在值之前添加的 但我不能 100 确定 在输入字段末尾完成光标初始化的最佳方法是什么 var Test
  • JavaScript 继承;调用和原型

    要在Javascript中实现继承 通常需要执行以下两个步骤 假设我有一个基类 Animal var Animal function name this name name 我现在想从中派生一个子类 Dog 所以我想说 var Dog fu
  • 将 Firebase 云消息传递与 Windows 应用程序结合使用

    我在 Android 和 iOS 应用程序中使用 Firebase Cloud Messaging 但是我还有此应用程序的 Windows Mac OS 版本 我想保留相同的逻辑 我知道 Firebase Cloud Messaging 可
  • mongodb 聚合 - 累积字段的不同组值

    如果我有Player表格文件 name String score Int 我有Group文档 其中组代表玩家列表 groupName String players ObjectID 玩家可以属于多个组 我想做一个聚合Player文档 按以下
  • 如何始终将焦点保持在文本框中

    我创建了一个包含两个 div 的 HTML 页面 左侧的 div 页面的 90 是 ajax 结果的目标 右侧的 div 页面的 10 包含一个文本框 该页面的想法是在文本框中输入零件编号 通过条形码扫描仪 并显示与该零件编号匹配的绘图 显
  • 改变 JavaScript 中的顶部填充

    以下是我在 css 中设置顶部填充的方法 body font size font size px margin 0 padding 100px 0 20px 0 width 100 important 如何使用最简单的 javascript
  • 如何从浏览器向服务器发送“页面将关闭”消息?

    我想向每个 html 文档添加一个脚本 JavaScript 该脚本向服务器发送两条消息 页面确实打开了 页面将关闭 此消息包含页面打开的时间 打开消息应在文档加载时 或加载完成时 发送 这是简单的部分 The close message
  • 使用javascript动态更新css内容

    需要将 css 更新为动态值 我不确定最好的方法是什么 div style zoom 1 div 缩放级别将根据窗口大小调整触发 应用程序将相应缩放 我将此应用程序加载到 cordova 中并让它在 iPAD 中运行 然后我意识到需要使用
  • 使用 Enzyme 测试 `React.createRef` api

    我想测试下面的类 它使用React createRef api 不过 快速搜索并没有发现任何这样做的例子 有人成功过吗 我该如何嘲笑裁判 理想情况下我想使用shallow class Main extends React Component
  • 什么是 WKWebView 中的 WKErrorDomain 错误 4

    fatal error LPWebView encounters an error Error Domain WKErrorDomain Code 4 A JavaScript exception occurred UserInfo 0x7
  • 没有输入的 jQuery 日期选择器

    我有一个相当复杂的网络应用程序 我想向其中添加一些日期选择 UI 我遇到的问题是我无法从文档中弄清楚如何真正控制日期选择器的出现方式和时间 不涉及任何表单元素 不 我不会添加秘密表单字段 因此简单的开箱即用方法根本行不通 我希望有人可以提供

随机推荐

  • 反编译--jadx的下载使用与配置

    下载与安装 git clone https github com skylot jadx git cd jadx gradlew dist 找到 jadx gui bat文件双击安装即可
  • 基于综合指标的冬小麦长势无人机遥感监测

    用于描述作物长势的指标 苗情 作物密度 叶面积指数 LAI 生物量 干物质量 光合色素含量 目前有关小麦长势监测的研究 多数是以LAI 叶片叶绿素含量 氮素含量 水分含量 生物量单个指标反映小麦长势 本文尝试将LAI 叶片叶绿素含量 氮素含
  • nvm安装与使用

    一 介绍 nvm 全称 Node Version Manager 顾名思义它是用来管理 node 版本的工具 方便切换不同版本的Node js 二 使用 nvm 的使用非常的简单 跟 npm 的使用方法类似 2 1 下载安装 首先先下载 n
  • 6.7行为型---中介者模式

    在现实生活中 常常会出现好多对象之间存在复杂的交互关系 这种交互关系常常是 网状结构 它要求每个对象都必须知道它需要交互的对象 例如 每个人必须记住他 她 所有朋友的电话 而且 朋友中如果有人的电话修改了 他 她 必须告诉其他所有的朋友修改
  • float和double的范围和精度

    float与double的范围和精度 1 范围 float和double的范围是由指数的位数来决定的 float的指数位有8位 而double的指数位有11位 分布如下 float 1bit 符号位 8bits 指数位 23bits 尾数位
  • MySQL --- 常用函数 - 字符串函数

    函数 MySQL 函数会对传递进来的参数进行处理 并返回一个处理结果 也就是返回一个值 MySQL 包含了大量并且丰富的函数 咱们讲解几十个常用的 剩下的比较罕见的函数我们可以到 MySQL 参考手册 查询 字符串函数 函数 作用 UPPE
  • STM32 Keil:warning: #223-D: function "LED_Init" declared implicitly

    include stm32f10x h include led h int main LED Init while 1 GPIO SetBits GPIOD GPIO Pin 6 运行时警告 warning 223 D function L
  • 【Android】dumpsys activity package $packagename

    具体作用后续跟进检讨补全
  • 线性代数的本质(一)

    文章目录 向量空间 向量及其性质 基与维数 向量的坐标运算 线性代数的本质 3blue1brown 高中数学A版选修4 2 矩阵与变换 线性代数及其应用 第五版 高等代数简明教程 蓝以中 向量空间 In the beginning Gran
  • 机器学习第五课--广告点击率预测项目以及特征选择的介绍

    这个项目的主要的目的是通过给定的广告信息和用户信息来预测一个广告被点击与否 如果广告有很大概率被点击就展示广告 如果概率低 就不展示 因为如果广告没有被点击 对双方 广告主 平台 来讲都没有好处 所以预测这个概率非常重要 也是此项目的目标
  • Description Resource Path Location Type Java compiler level does not match the version of the instal

    解决办法 在项目上右键Properties Project Facets 在打开的Project Facets页面中的Java下拉列表中 选择相应版本 有可能是java1 6 改成java6之类的
  • 【Python】平面多边形Wachspress坐标、中值坐标的计算及其等高线

    平面多边形Wachspress坐标 中值坐标的计算及其等高线 代码仅供参考 复杂度极高 暂时无优化 1 Wachspress坐标等高线绘制 1 1 程序 计算有向面积 def dir acr point1 point2 point3 res
  • Unity3d——ParticleSystem粒子光环

    记录一下学习的过程 首先是Inspector视窗中Particle System的属性 可以通过修改属性来改变粒子的效果 基本属性 Duration 发射器发送粒子持续的时间 比如设置为5 就是5秒后不再发送新的粒子 Looping 循环发
  • 1140: 小数点后第n位 多实例java

    import java util Scanner public class oj1 public static void main String args Scanner input new Scanner System in int t
  • 利用OpenGL设计贪吃蛇游戏

    利用OpenGL设计贪吃蛇游戏 文章目录 利用OpenGL设计贪吃蛇游戏 任务介绍 游戏玩法 开发环境 游戏实现 贪吃蛇游戏的框架搭建 主程序 游戏类 游戏对象类 工具类 着色器类 摄像机类 精灵渲染类 场景 蛇 食物的渲染 场景 蛇 食物
  • Windows 下将Python项目打包为.exe可执行文件

    Pycharm 打包为 exe 可执行文件 01 安装 PyInstaller 模块 02 打包文件 01 安装 PyInstaller 模块 Python 项目编写完成后 可以将其打包成一个 exe 可执行文件 这样即使计算机上没有Pyt
  • Android平台RTMP推送或GB28181设备接入端如何实现采集audio音量放大?

    我们在做Android平台RTMP推送和GB28181设备对接的时候 遇到这样的问题 有的设备 麦克风采集出来的audio 音量过高或过低 特别是有些设备 采集到的麦克风声音过低 导致播放端听不清前端采集的audio 这时候 就需要针对采集
  • docker容器打通git

    现在github 是通过access token鉴权登录的 在个人设置页面可以创建自己的token 一定要记得保存下来 页面关闭后就不会再展示了 在docker容器中clone仓库代码 会报识别不出github域名 这个时候ping一下gi
  • Python类与对象

    目录 1 语法 1 1 定义类 1 2 调用类 1 3 方法 2 封装 2 1 属性 2 2 类与方法的相互调用 2 3 私有方法 3 继承 3 1 单继承 3 2 多继承 3 3 连续继承 3 4 调用父类同名方法 3 5 查看继承关系
  • Vue获取子组件实例对象 ref 属性

    在 Vue 中推荐使用 ref 属性获取 DOM 元素 这种方式可以提高性能 如果将 ref 属性使用在组件上 那么返回的就是这个组件的实例对象 使用方式 p 或 p