Vue中ref和$refs的介绍以及使用方法示例
作者:@Demi 时间:2023-07-02 17:00:10
前言
在JavaScript中需要通过document.querySelector("#demo")来获取dom节点,然后再获取这个节点的值。在Vue中,我们不用获取dom节点,元素绑定ref之后,直接通过this.$refs即可调用,这样可以减少获取dom节点的消耗。
ref介绍
ref被用来给元素或子组件注册引用信息。引用信息将会注册在父组件的 $refs对象上。如果在普通的 DOM 元素上使用,引用指向的就是 DOM 元素;如果用在子组件上,引用就指向该子组件实例
通俗的讲,ref特性就是为元素或子组件赋予一个ID引用,通过this.$refs.refName来访问元素或子组件的实例
<p ref="p">Hello</p>
<children ref="children"></children>
this.$refs.p
this.$refs.children
this.$refs介绍
this.$refs是一个对象,持有当前组件中注册过 ref特性的所有 DOM 元素和子组件实例
注意: $refs只有在组件渲染完成后才填充,在初始渲染的时候不能访问它们,并且它是非响应式的,因此不能用它在模板中做数据绑定
注意:
当ref和v-for一起使用时,获取到的引用将会是一个数组,包含循环数组源
<template>
<div>
<div ref="myDiv" v-for="(item, index) in arr" :key="index">{{item}}</div>
</div>
</template>
<script>
export default {
data() {
return {
arr: ['one', 'two', 'three', 'four']
}
},
mounted() {
console.log(this.$refs.myDiv)
},
methods: {}
}
</script>
<style lang="sass" scoped>
</style>
实例(通过ref特性调用子组件的方法)
【1】子组件code:
<template>
<div>{{msg}}</div>
</template>
<script>
export default {
data() {
return {
msg: '我是子组件'
}
},
methods: {
changeMsg() {
this.msg = '变身'
}
}
}
</script>
<style lang="sass" scoped></style>
【2】父组件code:
<template>
<div @click="parentMethod">
<children ref="children"></children>
</div>
</template>
<script>
import children from 'components/children.vue'
export default {
components: {
children
},
data() {
return {}
},
methods: {
parentMethod() {
this.$refs.children //返回一个对象
this.$refs.children.changeMsg() // 调用children的changeMsg方法
}
}
}
</script>
<style lang="sass" scoped></style>
总结
来源:https://blog.csdn.net/qq_38128179/article/details/88876060
标签:vue,ref,$refs
0
投稿
猜你喜欢
thinkphp5.1 框架钩子和行为用法实例分析
2024-05-03 15:48:29
Python 解决OPEN读文件报错 ,路径以及r的问题
2022-06-12 11:06:41
MySQL explain根据查询计划去优化SQL语句
2024-01-26 16:59:26
pyTorch深入学习梯度和Linear Regression实现
2023-05-12 01:00:45
利用Pycharm断点调试Python程序的方法
2023-07-05 03:47:08
Python cookbook(数据结构与算法)筛选及提取序列中元素的方法
2023-04-27 19:46:34
深入理解Python中装饰器的用法
2022-04-25 18:59:31
详解Python3操作Mongodb简明易懂教程
2023-07-20 00:20:05
Hadoop-3.1.2完全分布式环境搭建过程图文详解(Windows 10)
2023-08-06 07:04:50
SQL语句删除2条重复数据一条保留一条
2012-07-11 15:51:44
Python练习-承压计算
2022-04-19 15:52:21
对numpy数据写入文件的方法讲解
2022-01-24 21:09:31
用javascript连接access数据库的方法
2024-01-15 11:11:51
.NET 6中System.Text.Json的七个特性
2024-05-02 17:20:02
Python开发工具Pycharm的安装以及使用步骤总结
2022-09-15 08:21:01
pycharm下配置pyqt5的教程(anaconda虚拟环境下+tensorflow)
2021-07-02 16:53:41
Dockerfile构建一个Python Flask 镜像
2021-11-12 10:04:01
解决Pandas的DataFrame输出截断和省略的问题
2021-10-28 10:22:19
axios请求二次封装之避免重复发送请求
2024-04-09 10:45:32
详解Django-channels 实现WebSocket实例
2021-02-12 03:53:48