时间:2021-05-26
在开发过程中,我们难免会使用到跨层级的ref实例获取,大部分情况下,我们都可以通过组件自身的parent或者children去找到需要的实例。但是当层级不明显或者太深的时候,用此方法难免过于臃肿和低效率。
如下图所示,我们通过组件E去获取组件D的组件实例。
分别有A、B、C、D、E和index六个组件,并按照上图的组件顺序,分别插入到各自的页面中。
页面样式如下:
下载vue-ref
npm install vue-ref --save全局注册
import ref from 'vue-ref'Vue.use(ref)使用方法
<!-- vm.dom will be the DOM node --><p v-ref="c => this.dom = c">hello</p><!-- vm.child will be the child component instance --><child-component v-ref="c => this.child = c"></child-component><span v-for="n in 10" :key="n" v-ref="(c, key) => {...}">{{ n }} </span>我们index页面中,提供了三个方法:分别用来:
组件A页面:
通过注入的方法,获取setChildrenRef方法,并通过上述指令,将组件D缓存起来
组件B页面:
组件C页面:
组件D页面:
组件E页面:
在这个页面中,我们不仅注入了两个方法,还设置了切换D组件颜色的方法,用来测试我们是否真的跨层级获取到了组件D的实例。
可以看到,三个parent的实例是一样的,在组件E中也成功修改了组件D的文字样式。good!
以上就是Vue使用Ref跨层级获取组件的步骤的详细内容,更多关于vue 使用Ref获取组件的资料请关注其它相关文章!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
相信有过React使用经验的人对ref都会熟悉,它可以用来获取组件实例对象或者是DOM对象。而useRef这个hooks函数,除了传统的用法之外,它还可以“跨渲
如下所示:自己写了个上传图片的子组件,父组件需要获取到子组件上传的图片地址,方法一:给相应的子组件加ref父组件在最后提交的时候获取thi.$ref.avata
最近在学习Vue父子组件通信的问题,刚好遇到一个父子之间事件事件派发与接收,在这里记录一下,在这里我使用的是ref给子组件注册引用信息。官网是这样解释的ref被
本文介绍了vue2里面ref的具体使用方法,分享给大家,具体如下。1、我们先定义两个组件html部分js部分Vue.component('navbar',{te
一、ref的基本使用ref的使用hello如果在普通的DOM元素上使用,引用指向的就是DOM元素如果用在子组件上,引用就指向组件实例深入理解$refs某组件的$