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

例如,如果我有这个组件:

<user-item ref="details"></user-item>

我使用

这个$裁判.细节

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

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

同时,我还有另一个组件,叫做用户组件的子组件权限:

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

In this Permissions component I need the same 这个$裁判.细节, but from what I test, like an experiment, doesn't work.

举个简单的例子.

有人能告诉我怎么做吗?

推荐答案

在组件之间传递数据不需要使用$refs.使用dataprops或在组件之间分派事件.

如果你真的想通过$refs访问你的user-item.然后你应该从permissions组件中这样做.

this.$parent.$refs.details

它基本上会得到一个对父组件(你的User组件)的引用,它的$refs中有details.

这假设您的组件是这样组合的:

<user>
  <user-item ref="details"></user-item>
  <permissions></permissions>
</user>

Edit:

<user>
  <user-item ref="details"></user-item>
  <permissions :parentRefs="$refs"></permissions>
</user>

其中parentRefspermissions组件props中的成员.

OP能够使用this.parentRefs.detailspermissions访问user-item.

Vue.js相关问答推荐

Vue CDN的html工作,但v—如果不工作

Vue,Composition API:如何从react 式转换中跳过深度嵌套的属性?

Vue3 动态渲染

如何从mustache内的过滤器输出html

Vue.js 和观察者模式

Vue watch 意外调用了两次

Vuetify - 如何保持第一个扩展面板默认打开,如果我打开另一个面板,其他面板应该关闭?

ECMA6 中 nameFunction() {} 和 nameFunction () => {} 的区别

Vue.js 过滤数组

如何使用 vuejs 从 SPA 访问 /storage -laravel- 中的图像

Vue更改宽度和内容

如何使用 Vuejs 和 Laravel 获取当前经过身份验证的用户 ID?

Vue 如何使用 slot 和 slot-props 测试组件

取消选中单选按钮

如何更改 Vuetify 日历日期格式

Vuetify - 如何进行分页?

laravel vuejs/axios put request Formdata 为空

组件已注册但未使用 vue/no-unused-components

如何在 Promise 回调中更新 Vue 应用程序或组件的属性?

Vue组件如何命名