当前位置: 首页 > news >正文

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

http://www.lryc.cn/news/357582.html

相关文章:

  • CBK-D2-安全与架构工程.md
  • Windows驱动开发系列文章一
  • java项目之人事系统源码(springboot+vue+mysql)
  • I/O '24|学习资源焕新,技术灵感升级
  • 前端应用开发实验:表单控件绑定
  • [双指针] --- 快乐数 盛最多水的容器
  • 操作系统 - 输入/输出(I/O)管理
  • 代码随想录算法训练营第22天(py)| 二叉树 | 669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树
  • 使用C语言实现学生信息管理系统
  • 上下文视觉提示实现zero-shot分割检测及多visual-prompt改造
  • WebGL学习(一)渲染关系
  • 人生建议:向猫学习
  • 软件架构设计属性之三:结构性属性浅析
  • JAVA:多线程常见的面试题和答案
  • 短信平台-平台群发短信
  • C++:类和对象
  • JavaScript条件语句与逻辑判断:解锁代码逻辑的奥秘【含代码示例】
  • sparksql自定义函数
  • 新人开发新系统,旧人维护旧系统
  • 鸿蒙应用模型:【Stage模型开发】概述
  • java使用jdbcTemplatep批量插入数据
  • K8s service 进阶
  • CompletableFuture详细讲解
  • 【Linux】初识Linux和Linux环境配置
  • redis-cli help使用
  • 中华活页文选高中版投稿发表
  • [图解]企业应用架构模式2024新译本讲解02-表数据入口
  • SSE(Server Sent Event) 踩坑留念
  • plt.xticks()的作用
  • 开发者的福音:免去搭建服务,让你的应用开发变得像吃蛋糕一样简单!