04-Vue:ref获取页面节点--很简单

目录

    • 前言
    • 在Vue中,通过 ref 属性获取DOM元素
      • 使用 ref 属性获取整个子组件(父组件调用子组件的方法)

前言

我们接着上一篇文章 03-02-Vue组件之间的传值 来讲。


下一篇文章 05-Vue路由

在Vue中,通过 ref 属性获取DOM元素

我们当然可以使用JS原生的做法(document.getElementById)或者 jQuery 来获取DOM,但是这种做法却在无形中操作了DOM,在Vue框架中并不推荐这种做法。

我们可以通过ref属性获取DOM元素。

ref的英文单词是reference,表示引用。我们平时可以经常看到控制台会报错referenceError的错误,就和引用类型的数据有关。

在Vue中,通过 ref 属性获取DOM元素的步骤:

(1)第一步:在标签中给 DOM 元素设置 ref 属性。

    <h3 id="myH3" ref="myTitle"> 今天天气太好了</h3>

(2)第二步:通过 this.$refs.xxx 获取 DOM 元素

console.log(this.$refs.myTitle.innerText)

举例如下

<template>
  <div id="app">
    <!-- 第一步:在标签中给 DOM 元素设置 ref 属性 -->
    <h3 id="myH3" ref="myTitle"> 今天天气太好了</h3>
    <button @click="getRefs">获取页面节点</button>
  </div>
</template>

<script>

export default {
  methods: {
    getRefs(){
      // 第二步:通过 this.this.$refs.xxx 获取 DOM 元素
      console.log(this.$refs.myTitle.innerText);
    }
  },
};
</script>

运行上方代码,然后我们在控制台输入vm,就可以看到:

7

使用 ref 属性获取整个子组件(父组件调用子组件的方法)

根据上面的例子,我们可以得出规律:只要ref属性加在了DOM元素身上,我们就可以获取这个DOM元素。

那我们可以通过ref属性获取整个Vue子组件吗?当然可以。这样做的意义是:在父组件中通过ref属性拿到了子组件之后,就可以进一步拿到子组件中的data和method

父组件代码:

<template>
  <div id="app">
    <!-- 第一步:在标签中给 DOM 元素设置 ref 属性 -->
    <MyComponent ref="MyComponentRef"></MyComponent>
    <button @click="getRefs">获取页面节点</button>
  </div>
</template>

<script>
import MyComponent from './components/MyComponent.vue';

export default {
  components: {
    MyComponent
  },
  data() {
    return {

    };
  },
  methods: {
    getRefs(){
      // 第二步:通过 this.this.$refs.xxx 获取 DOM 元素
      this.$refs.MyComponentRef.handleClick()
    }
  },
};
</script>

子组件代码

<template>
    <div @click="handleClick">这是组件中的内容</div>
</template>

    <script>
export default {
    data(){
        return{
            childData: { //定义自组件的数据
                name: 'HydeLinjr',
                age: 26
            }
        }
    },
    methods: {
        handleClick() {
            // 子组件如果要给父组件传递参数,在触发 emit 的时候,通过参数的形式带出去就可以了
            // 【第一步】在子组件里,我们带两个参数出去,传给父组件
            console.log(this.childData);
        },
    },
};
</script>

    <style>
</style>

运行代码,点击按钮后,效果如下:

8

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/637852.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CTFHUB技能树——SSRF(三)

目录 URL Bypass 数字IP Bypass 302跳转 Bypass DNS重绑定 Bypass SSRF绕过方法&#xff1a; &#xff08;1&#xff09; http://abc.com127.0.0.1 &#xff08;2&#xff09;添加端口号 http://127.0.0.1:8080 &#xff08;3&#xff09;短地址 htt…

LabVIEW和ZigBee无线温湿度监测

LabVIEW和ZigBee无线温湿度监测 随着物联网技术的迅速发展&#xff0c;温湿度数据的远程无线监测在农业大棚、仓库和其他需环境控制的场所变得日益重要。开发了一种基于LabVIEW和ZigBee技术的多区域无线温湿度监测系统。系统通过DHT11传感器收集温湿度数据&#xff0c;利用Zig…

攻防世界-mobile-easy-app详解

序言 这道题网上很多分析&#xff0c;但是分析的都是arm版本的&#xff0c;我选了arm64的来分析&#xff0c;arm64相比arm难度高一些&#xff0c;因为arm64编译器搞了inline优化&#xff0c;看起来略抽象 分析 这道题逻辑很简单&#xff0c;输入flag然后一个check函数验证&a…

Python 造数据神器Faker

大家好&#xff0c;在编写代码过程中&#xff0c;我们经常需要一些假数据来进行测试或者演示。手动创建这些数据不仅耗时&#xff0c;而且容易出错。幸运的是&#xff0c;Python有一个非常有用的库叫做Faker&#xff0c;它可以生成各种类型的假数据&#xff0c;从名字、地址到公…

学习图形推理

学习图形推理 1.位置规律1.1平移1.2翻转、旋转2.样式规律2.1加减异同2.2黑白运算3.属性规律3.1对称性3.2曲直性3.3开闭性4.数量规律4.1面4.2线数量4.3笔画数4.4点数量4.5素数量5.空间重构5.1相对面5.2相邻面-公共边5.3相邻面-公共点5.4相邻面-画边法题型 一组图:从左往右找规律…

在代码中集成sentry项目

创建团队和项目 选择项目进入设置 选择错误跟踪选择对应的项目类型 根据配置和测试信息配置sentry项目到代码中并测试

如何用VSCode debug Python文件

诸神缄默不语-个人CSDN博文目录 需求&#xff1a;我其实一般都用print大法来“调试”程序&#xff0c;但是有时对于机械性比较强但是又有些复杂的程序&#xff0c;还是debug比较方便。 debug功能我之前用过NetBeans和eclipse&#xff0c;应该可以明显看出来我是Java转Python党…

虚拟ECU:彻底改变汽车软件开发与测试

汽车开发领域有着垂直性较强的一系列需求&#xff0c;其中最为瞩目的需求之一就是对安全高效的软件测试方法的需求。传统的汽车开发偏向使用硬件原型与真实ECU进行软件测试&#xff0c;但由于硬件设备往往在开发周期的中后阶段才生产完成&#xff0c;给汽车开发带来了成本与时间…

微软刚发布的Copilot+PC为什么让Intel和AMD尴尬?2024 AI PC元年——产业布局及前景展望

美国东部时间5月20日在微软位于华盛顿的新园区举行的发布会上&#xff0c;宣布将旗下AI助手Copilot全面融入Windows系统&#xff0c;能够在不调用云数据中心的情况下处理更多人工智能任务。 “将世界作为一个提示词就从Windows系统开始”。微软的新PC将是“CopilotPC”&#xf…

【SQL】外连接 LEFT JOIN

目录 一.内连接与外连接 1.内连接&#xff08;inner join&#xff09; 2.外连接&#xff08;outer join&#xff09; 二.两表连接 1.我们先来试试看内连接&#xff1a; 2.我们再来试试外连接 三.单表外连接 四.总结 一.内连接与外连接 先得介绍内连接和外连接两个概念&…

esp32(8266)如何在platformio中上传文件到单片机

本来认为这是基础内容&#xff0c;不用我来介绍&#xff0c;结果&#xff0c;在个人的单片机字库开源项目 GitHub - StarCompute/tftziku: 这是一个通过单片机在各种屏幕上显示中文的解决方案 中有两个人问到了&#xff0c;就特别来说明一下&#xff1a; 在platformio中新建一…

音视频开发7 音视频转换格式流程

先看条转换视频文件的命令 我们的目的是将 源文件 source_1920x1080.mp4 转换成 目标文件 dest_1280x720.flv ffmpeg -i source_1920x1080.mp4 -acodec copy -vcodec libx264 -s 1280x720 dest_1280x720.flv -acodec copy 的意思是&#xff0c;目标的 音频格式 使用和 源文…

vue 引入 emoji 表情包

vue 引入 emoji 表情包 一、安装二、组件内使用 一、安装 npm install --save emoji-mart-vue二、组件内使用 import { Picker } from "emoji-mart-vue"; //引入组件<picker :include"[people,Smileys]" :showSearch"false" :showPreview&q…

操作系统中的内存管理

虚拟内存 操作系统会提供一种机制&#xff0c;将不同进程的虚拟地址和不同内存的物理地址映射起来。如果程序要访问虚拟地址的时候&#xff0c;由操作系统转换成不同的物理地址&#xff0c;这样不同的进程运行的时候&#xff0c;写入的是不同的物理地址&#xff0c;这样就不会冲…

【JavaEE进阶】——Spring Web MVC (响应)

目录 &#x1f6a9;学习Spring MVC &#x1f388;返回静态网页 &#x1f388;返回数据ResponseBody &#x1f388;返回html代码片段 &#x1f388;返回JSON &#x1f388;设置状态码 &#x1f388;设置Header &#x1f6a9;学习Spring MVC 既然是 Web 框架, 那么当⽤⼾在…

ORA-01012: not logged on

问题描述 明明已经shutdown immediate一致性关库&#xff0c;但是查进程时发现oracle进程依然存在。sqlplus / as sysdba登录提示ORA-01012: not logged on报错&#xff0c;着重强调&#xff0c;服务器上就一个实例。 分析过程 查看进程 我通常会在shutdown immediate之后查…

黄石首家Pearson VUE国际认证考试中心落户湖北理工学院

Pearson VUE 作为 Pearson 集团的专门从事计算机化考试服务的公司&#xff0c;到目前为止&#xff0c;已在全世界165 个国家授权了 4400 多个考试中心以及超过 230 家 PVUE 自有考试中心&#xff0c;其中在中国的有三百多个授权考点和 4 个自有考试中心。Pearson VUE 以其技术和…

Python模块、包和异常处理

大家好&#xff0c;在当今软件开发领域&#xff0c;Python作为一种简洁、易读且功能强大的编程语言&#xff0c;被广泛应用于各种领域。作为一名测试开发工程师&#xff0c;熟练掌握Python的模块、包和异常处理是提高代码可维护性和错误处理能力的关键。本文将和大家一起探讨Py…

QT--将编译程序打包成可安装执行文件方法记录

QT–将编译程序打包成可安装执行文件 文章目录 QT--将编译程序打包成可安装执行文件前言一、下载inno setup compiler工具并安装&#xff0c;然后&#xff0c;打开打包工具执行流程二、设置中文语言三、流程结束后需要修改脚本&#xff0c;否则&#xff0c;创建的快捷方式不是编…