温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么在Vue中利用Ref跨层级获取组件

发布时间:2021-01-25 15:48:25 来源:亿速云 阅读:485 作者:Leah 栏目:开发技术

这期内容当中小编将会给大家带来有关怎么在Vue中利用Ref跨层级获取组件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

文档目录结构

怎么在Vue中利用Ref跨层级获取组件

分别有A、B、C、D、E和index六个组件,并按照上图的组件顺序,分别插入到各自的页面中。

页面样式如下:

怎么在Vue中利用Ref跨层级获取组件

安装vue-ref

下载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>

根组件自定义方法[使用provide和inject]

我们index页面中,提供了三个方法:分别用来:

  • 设置子组件的实例,setChildrenRef

  • 获取自组件实例, getChildrenRef

  • 获取当前节点实例, getRef

provide() {
  return {
   setChildrenRef: (name, ref) => {
    this[name] = ref
   },
   getChildrenRef: name => {
    return this[name]
   },
   getRef: () => {
    return this
   }
  }
 },

分别说明各个页面

组件A页面:

怎么在Vue中利用Ref跨层级获取组件

通过注入的方法,获取setChildrenRef方法,并通过上述指令,将组件D缓存起来

组件B页面:

怎么在Vue中利用Ref跨层级获取组件

组件C页面:

怎么在Vue中利用Ref跨层级获取组件

组件D页面:

怎么在Vue中利用Ref跨层级获取组件

组件E页面:

怎么在Vue中利用Ref跨层级获取组件

在这个页面中,我们不仅注入了两个方法,还设置了切换D组件颜色的方法,用来测试我们是否真的跨层级获取到了组件D的实例。

结果

怎么在Vue中利用Ref跨层级获取组件

上述就是小编为大家分享的怎么在Vue中利用Ref跨层级获取组件了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI