详解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实例的所有ref
vm.$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>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
vue .js绑定checkbox并获取、改变选中状态的实例
今天小编就为大家分享一篇vue .js绑定checkbox并获取、改变选中状态的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2018-08-08vue+flv.js+SpringBoot+websocket实现视频监控与回放功能
vue+springboot的项目,需要在页面展示出海康的硬盘录像机连接的摄像头的实时监控画面以及回放功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧2022-02-02Vue中使用 Echarts5.0 遇到的一些问题(vue-cli 下开发)
这篇文章主要介绍了Vue中使用 Echarts5.0 遇到的一些问题(vue-cli 下开发),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-10-10解决vscode进行vue格式化,会自动补分号和双引号的问题
这篇文章主要介绍了解决vscode进行vue格式化,会自动补分号和双引号的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-10-10vue.js中methods watch和computed的区别示例详解
methods,watch和computed都是以函数为基础的,但各自却都不同,这篇文章主要给大家介绍了关于vue.js中methods watch和computed区别的相关资料,需要的朋友可以参考下2021-08-08警告[vue-router] Duplicate named routes definition简单解决方法
这篇文章主要关于介绍了警告[vue-router] Duplicate named routes definition的解决方法,这个错误提示是因为在Vue Router中定义了重复的路由名称,需要的朋友可以参考下2023-12-12
最新评论