Vue.js 通过参考号';将内容从一个子组件复制到另一个VueJS子组件

Vue.js 通过参考号';将内容从一个子组件复制到另一个VueJS子组件,vue.js,vuejs2,Vue.js,Vuejs2,我正在学习VueJS,我对ref$ref的讲座有点困惑。我试图从vue的文档中理解它,但我没有得到我想知道的 例如,如果我有此组件: <div id="User"> <user-item ref="details"></user-item> <permissions></permissions> </div> 我使用 这是。$refs.details 在用户父组件中使用该数据,因为此用户项是用户组件的子项

我正在学习VueJS,我对ref$ref的讲座有点困惑。我试图从vue的文档中理解它,但我没有得到我想知道的

例如,如果我有此组件:

<div id="User">
   <user-item ref="details"></user-item>
   <permissions></permissions> 
</div>

我使用

这是。$refs.details

在用户父组件中使用该数据,因为此用户项是用户组件的子项

<div id="User">
  <user-item ref="details"></user-item>
</div>

同时,我还有另一个组件,称为用户组件的子级权限:

<div id="User">
   <user-item ref="details"></user-item>
   <permissions></permissions> 
</div>

在这个权限组件中,我需要相同的this.$refs.details,但从我的测试来看,就像一个实验,不起作用

这只是一个简单的例子


有人能告诉我怎么做吗?

您不需要使用
$refs
在组件之间传递数据。使用
数据
道具
或在组件之间分派事件

如果您确实想通过
$refs
访问您的
用户项目
。然后,您应该从
权限
组件中这样做

this.$parent.$refs.details
它基本上会获得一个对父组件(您的
用户
组件)的引用,该组件在其
$refs
中包含
详细信息

这假设您的组件按如下方式组合在一起:

<user>
  <user-item ref="details"></user-item>
  <permissions></permissions>
</user>
其中,
parentRefs
permissions
组件的
props
中的成员


OP可以使用
this.parentRefs.details

权限
访问
用户项
我试图使用它。$parent.$refs.details,我得到:“无法读取未定义的属性'details'”嗯,你能发布你的代码片段吗?它应该可以正常工作。
this.$nextTick(()=>{this.$parent.$ref.details.open({title:this.fullName,});})这在子级中,这在父级中:
this.$nextTick(()=>{this.$refs.details.open({title:this.fullName,});})
尝试控制台日志
this.$parent
this.$parent.$refs
。我认为
$refs
在安装组件后需要一段时间才能使用。我在很多情况下都看到了这一点。对于这个。$parent。$ref我得到:
Object{background:div.fullscreen.layout-background.transition-generic.no-pointer-events.q-touch.q-touch-y,header:header.layout-header.transition-generic.fixed-top,main:div.layout-page-container.transition-generic,footer:…
为此,我在控制台中得到$parent:
VueComponent{uid:11,_isVue:true,$options:Object,_renderProxy:Proxy,_self:VueComponent…}