首页前端开发JavaScriptVue使用Ref跨层级获取组件的步骤

Vue使用Ref跨层级获取组件的步骤

时间2024-01-31 17:14:03发布访客分类JavaScript浏览991
导读:收集整理的这篇文章主要介绍了Vue使用Ref跨层级获取组件的步骤,觉得挺不错的,现在分享给大家,也给大家做个参考。 Vue使用Ref跨层级获取组件实例示例介绍在开发过程中,我们难免会使用...
收集整理的这篇文章主要介绍了Vue使用Ref跨层级获取组件的步骤,觉得挺不错的,现在分享给大家,也给大家做个参考。

Vue使用Ref跨层级获取组件实例

示例介绍

在开发过程中,我们难免会使用到跨层级的ref实例获取,大部分情况下,我们都可以通过组件自身的parent或者children去找到需要的实例。但是当层级不明显或者太深的时候,用此方法难免过于臃肿和低效率。

如下图所示,我们通过组件E去获取组件D的组件实例。

文档目录结构

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

页面样式如下:

安装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页面:

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

组件B页面:

组件C页面:

组件D页面:

组件E页面:

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

结果

可以看到,三个parent的实例是一样的,在组件E中也成功修改了组件D的文字样式。good!

以上就是Vue使用Ref跨层级获取组件的步骤的详细内容,更多关于vue 使用Ref获取组件的资料请关注其它相关文章!

您可能感兴趣的文章:
  • Vue多选列表组件深入详解
  • vue 使用 v-model 双向绑定父子组件的值遇见的问题及解决方案
  • vue使用transition组件动画效果的实例代码
  • vue 组件基础知识总结
  • 深入了解Vue动态组件和异步组件
  • Vue实现多页签组件
  • vue3中轻松实现switch功能组件的全过程
  • vue3自定义dialog、modal组件的方法
  • Vue中强制组件重新渲染的正确方法
  • vue 动态创建组件的两种方法
  • 详解vue3中组件的非兼容变更

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

vue

若转载请注明出处: Vue使用Ref跨层级获取组件的步骤
本文地址: https://pptw.com/jishu/594246.html
Vue中的nextTick作用和几个简单的使用场景 适合小白入门C语言的简单教程

游客 回复需填写必要信息