vue:ref的作用和实例

news/2024/10/17 11:27:09/

定义:用来获取元素或子组件注册或者引用信息,父组件通过$ref获取到相应的DOM对象和子组件

1、vue中ref的作用

  • 获取页面的DOM元素
  • 获取子组件的对象(也是一种通信方式)

2、实例

   1、获取DOM,首先创建一个父页面index然后写一个标签h1获取这个标签的DOM元素

h1的样式:

 运行:控制台打印出H1标签的dom元素,

例如:dom元素中的文本、网页中的位置和样式等

我们获取它的样式给view标签使用,那么$refs.路径,这里样式的路径是p.id所以引入的模版就是这样

运行效果:

刚刚黑色的文字也变成了紫色

3、获取子组件对象

  首先我们需要引入子组件samsung并在子组件中写一些数据和方法以便后面父元素好调用

  1、引入子组件samsung并获取samsung组件的对象

samsung页面:

运行:

打开控制台我们就能获取到samsung组件中的数据和方法和很多数据

然后我们获取并使用子页面的数据和方法:

运行并打印结果:

点击使用方法:

从而完成父子之间的组件通信。

总结:

ref的作用主要是:获取页面的DOM元素(样式、位置、文本等)、获取子组件的对象(也是一种通信方式)

源码:

(使用uniapp运行):父页面

<template><div class="father"><h1 ref="p" id="oss">我是父页面</h1><!--获取Dom--><!-- 	<view :id="$refs.p.id">我想使用父页面h1的样式</view> --><samsung ref="samsung"></samsung><view>获取子组件中的数据:{{$refs.samsung.data}}</view><view><button @click="next">nexttick</button></view></div>
</template><script>import SamsungComponent from '@/components/samsung.vue'; // 根据实际路径进行修改export default {components: {'samsung': SamsungComponent,},data() {return {box: ['项目1', '项目2', '项目3']}},mounted() {console.log(this.$refs) //获取dom// console.log(this.$refs.p.innerHTML)console.log(this.$refs.p.id)console.log(this.$refs.samsung) //子组件// console.log(this.$refs.samsung.data) //获取自组件的数据// console.log(this.$refs.samsung.add(1, 2)) //获取子组件的方法},methods: {next() {console.log('数据',this.$refs.samsung.add(1,2))},// add(num, num1) {// 	return num + num1// }}};
</script><style>.father{width: 500px;height: 500px;background-color: antiquewhite;}.content {display: flex;flex-direction: column;align-items: center;justify-content: center;}.logo {height: 200rpx;width: 200rpx;margin-top: 200rpx;margin-left: auto;margin-right: auto;margin-bottom: 50rpx;}.text-area {display: flex;justify-content: center;}.title {font-size: 36rpx;color: #942894;}#oss {color: #942894;}
</style>

子页面:

<template><view class="son"><!--定义ref属性,用来--><h3>我是子页面</h3><!--获取DOM--></view>
</template><script>export default {data() {return {data: '我是数据'}},methods: {add(num, num1) {return num + num1}}}
</script><style>.son{width: 200px;height: 200px;background-color: blue;}
</style>


http://www.ppmy.cn/news/1279170.html

相关文章

内网渗透测试基础——权限提升分析及防御

内网渗透测试基础——权限提升分析及防御 ​ 在Windows中&#xff0c;权限大概分为四种&#xff0c;分别是User、Administrator、System、TrustedInstaller。在这四种权限中&#xff0c;我们经常接触的是前三种。第四种权限TrustedInstaller&#xff0c;在常规使用中通常不会涉…

虚拟机对象的创建

虚拟机对象 虚拟机在Java堆中对象分配、布局和访问的访问过程 对象的创建 Java对象的创建步骤&#xff1a; 1&#xff09;类加载检查 虚拟机遇到一条 new 指令时&#xff0c;首先将去检查这个指令的参数是否能在常量池中定位到这个类的符号引用&#xff0c;并且检查这个符号…

hive中map相关函数总结

目录 hive官方函数解释示例实战 hive官方函数解释 hive官网函数大全地址&#xff1a; hive官网函数大全地址 Return TypeNameDescriptionmapmap(key1, value1, key2, value2, …)Creates a map with the given key/value pairs.arraymap_values(Map<K.V>)Returns an un…

华为OD机试真题- 小华最多能得到多少克黄金-2023年OD统一考试(C卷)

题目描述: 小华按照地图去寻宝,地图上被划分成 m 行和 n 列的方格,横纵坐标范围分别是 [0, n−1]和[0, m-1]。在横坐标和纵坐标的数位之和不大于k的方格中存在黄金(每个方格中仅存在一克黄金),但横坐标和纵坐标之和大于k的方格存在危险不可进入。小华从入口(0,0)进入,任…

企业出海-如何保护客户账户安全?

近年来国内企业竞争日益激烈&#xff0c;许多企业在这般环境下难以持续发展。那么该如何获得业务的可持续性增长&#xff0c;如何获取更多的客户的同时开阔公司的视野&#xff1f;出海便是如今帮助国内企业能快速发展壮大的潮流之一&#xff0c;摆脱了局限于国内发展的束缚奔向…

医学实验室检验科LIS信息系统源码

实验室信息管理是专为医院检验科设计的一套实验室信息管理系统&#xff0c;能将实验仪器与计算机组成网络&#xff0c;使病人样品登录、实验数据存取、报告审核、打印分发&#xff0c;实验数据统计分析等繁杂的操作过程实现了智能化、自动化和规范化管理。 实验室管理系统功能介…

ubuntu22.04 将python源切换为清华源

在 Ubuntu 22.04 中将 Python 包管理器 pip 的源切换到清华大学镜像源可以加快包的下载速度&#xff0c;特别是在中国大陆地区。以下是详细的步骤&#xff1a; 方法 1: 临时使用清华源 在使用 pip 安装包时&#xff0c;您可以通过 --index-url 参数临时指定清华源。例如&…

华为鸿蒙开发适合哪些人学习?

随着鸿蒙系统的崛起&#xff0c;越来越多的人开始关注鸿蒙开发&#xff0c;并希望成为鸿蒙开发者。然而&#xff0c;鸿蒙开发并不适合所有人&#xff0c;那么哪些人最适合学习鸿蒙开发呢&#xff1f;本文将为您总结鸿蒙开发适合的人群。 一、具备编程基础的人 学习鸿蒙开发需要…