详解Vue的ref特性的使用
作者:bluesboneW 发布时间:2024-06-07 15:23:02
标签:Vue,ref
一、ref的基本使用
ref
的使用
<!-- `vm.$refs.p`将会是DOM结点 -->
<p ref="p">hello</p>
<!-- `vm.$refs.child`将会是子组件实例 -->
<child-component ref="child"></child-component>
如果在普通的 DOM 元素上使用,引用指向的就是DOM 元素如果用在子组件上,引用就指向组件实例
深入理解$refs
某组件的$refs
含有该组件的所有ref
,看下面的例子
<div id="app">
<p ref="p">hello</p>
<child-component ref="child"></child-component>
</div>
<script>
Vue.component('child-component', {
template: '<h1>child-component </h1>'
})
let vm = new Vue({
el: '#app'
})
</script>
从上图中我们很容易发现vm.$refs
返回了一个对象,这个对象内有两个成员,包含了vm实例的所有refvm.$refs.p
是DOM 元素vm.$refs.child
是组件实例
二、实战:通过ref获取子组件data
看下面的例子
<div id="app">
<counter ref="child1" @change="handleChange"></counter>
<counter ref="child2" @change="handleChange"></counter>
<div>{{sum}}</div>
</div>
<script>
// counter组件,实现每点击一次,自增1
Vue.component('counter', {
template: '<h3 @click="handleClick">{{count}}</h3>',
data() {
return {
count: 0
}
},
methods: {
handleClick() {
this.count += 1;
this.$emit('change')
}
}
})
let vm = new Vue({
el: '#app',
data: {
sum: 0
},
methods: {
handleChange() {
this.sum = this.$refs.child1.count + this.$refs.child2.count // 使用refs获取子组件的数据
}
}
})
</script>
来源:https://segmentfault.com/a/1190000021643481


猜你喜欢
- 相比于原生的python开发核心包,Anaconda已经集成了许多的第三方库,但是这在实际应用中是远远不够的,因此我们需要手动安装第三方库使
- MySQL 日期时间教程 在本教程中,我将通过示例解释 MySQL DATE 和 TIME 函数。 DA
- 安装SQL Server 2005弄了好久,终于可以了。。。期间问题重重,想拿出来和大家一同分享的。第一种错误显示:无法在com+目录中安装
- 本文学习如何在Golang程序中执行Shell命令(如,ls,mkdir或grep),如何通过stdin和stdout传入I/O给正在运行的
- 以下操作演示都是基于mysql5.6.36版本:工作中经常遇到这样的问题:mysql数据访问能量很大,想要从sql方面优化。研发经常会问到能
- 其实我这样做的本意是为了防止盗链!大家帮忙看一下通过代码能够根治盗链!只要不是HTTP_REFERER来源于(google.com goog
- 在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数
- 1.语句块(BEGIN…END)语句块语法如下: BEG
- 这里介绍笔者在学习wordcloud库时安装过程中所遇到的问题和解决方案1.在Pycharm中安装wordcloud出现的问题如下图所示2.
- 执行python脚本的时候,有时需要获取命令行参数的相关信息。C语言通过argc和argv来获取参数的个数和参数的内容,python中通过s
- LBound函数:返回指定数组维的最小可用下标;UBound函数:返回指定数组维的最小可用上标;LBound(arrayname, [,di
- 本文实例讲述了Python实现复杂对象转JSON的方法。分享给大家供大家参考,具体如下:在Python对于简单的对象转json还是比较简单的
- 使用attachEvent对同一事件进行多次绑定,这是解决事件函数定义冲突的重要方法。但是在IE中,函数内的this指针并没有指向被绑定元素
- 本文实例为大家分享了Javascript实现单选框效果的具体代码,供大家参考,具体内容如下描述: 点击每一个li 将li的内容赋值给 div
- 一、网络请求在uni中可以调用uni.request方法进行请求网络请求需要注意的是:在小程序中网络相关的 API 在使用前需要配置域名白名
- 说下防止PHPDDOS发包的方法 if (eregi("ddos-udp",$read)) { fputs($verbi
- 设置自动的参数注释标识如何使用pycharm自动添加引用注释描述功能使用场景多行注释,且需要对传入的参数以及返回值进行详尽的阐述时,如下图设
- 本文研究的主要是Django开发中的signal 的相关内容,具体如下。前言在web开发中, 你可能会遇到下面这种场景:在用户完成某个操作后
- 区别:xx:公有变量,所有对象都可以访问;xxx:双下划线代表着是系统定义的名字。__xxx:双前置下划线,避免与子类中的属性命名冲突,无法
- 一、安装对应包在Pycharm的Terminal终端中输入pip install virtualenv,创建一个引入新的虚拟环境的条件。二、