我正在学习VueJS,我对ref,$ refs讲座感到有些困惑。我试图从vue的文档中理解它,但我没有得到我想知道的东西。
例如,如果我有这个组件:
<user-item ref="details"></user-item>
我使用
从这个组件中获取数据这个。$ refs.details
在User父组件中使用该数据,因为此用户项是User组件的子项。
<div id="User">
<user-item ref="details"></user-item>
</div>
与此同时,我还有另一个名为“用户组件的权限”的组件:
<div id="User">
<user-item ref="details"></user-item>
<permissions></permissions>
</div>
在这个权限组件中我需要相同的这个。$ refs.details,但是我测试的,就像实验一样,不起作用。
这只是一个简单的例子。
有人可以告诉我该怎么做?
答案 0 :(得分:11)
您不需要使用$refs
在组件之间传递数据。使用data
,props
或在组件之间调度事件。
如果您真的想通过user-item
访问$refs
。然后你应该从你的permissions
组件中这样做。
this.$parent.$refs.details
它基本上会获得对其User
details
中$refs
的父(您的<user>
<user-item ref="details"></user-item>
<permissions></permissions>
</user>
组件)的引用。
这假设您的组件放在一起如下:
$refs
修改强>
在安装组件时,details
似乎是空的,因此undefined
将是$refs
。将整个permissions
对象传递给props
组件<user>
<user-item ref="details"></user-item>
<permissions :parentRefs="$refs"></permissions>
</user>
似乎与OP一起使用。
parentRefs
其中permissions
是props
组件user-item
中的成员。
OP可以使用permissions
从this.parentRefs.details
访问public class TestClass{
private byte[] attribute0;
private customClass0 attribute1;
private customClass1 attribute2;
...
public TestClass(byte[] args){
int offset = 0;
byte[] argsCustomClass0;
byte[] argsCustomClass1;
System.arraycopy(args, offset, attribute0, 0, attribute0.length);
offset += attribute0.length;
System.arraycopy(args, offset, argsCustomClass0, 0, argsCustomClass0.length);
offset += attribute0.length;
attribute1 = new CustomClass1(argsCustomClass0);
System.arraycopy(args, offset, argsCustomClass1, 0, argsCustomClass1.length);
offset += argsCustomClass1.length;
attribute2 = new customClass1(argsCustomClass1);
...
}
。