在Vue3
组合式语法中使用tsx
, 往一个子组件上注册一个 ref
引用,同时又通过展开运算符...
将一个含有值是字符串的ref
属性的 props
传递给子组件,此时子组件上会有2个ref
,我该如何在子组件间中得到props
中的字符串ref
?
代码简单演示:
const nodeRef = ref()
const props = {
ref:'uuid_xxx',
//...any more
}
//... more code
return <ChildComp ref="nodeRef" {...props} />
ChildComp
可能是 SFC
也可能是 tsx
组件。
这种设计不友好,但是由于某些原因,目前只能保持现状。
2个 ref
,一个是mounted
后赋值为组件实例,一个是想传递到子组件内部的字符串属性。
目前已经做了尝试,无法在子组件中通过 $attrs
& useAttrs()
获取到透传的字符串 ref
——'uuid_xxx'
,但其实'uuid_xxx'
值已经通过$attrs
的方式挂到 ChildComp
根元素的__id__
attribute上了。
<!-- ChildComp 根元素 -->
<div __id__="uuid_xxx" ...more />
我希望能保持此种情况下,获取到该字符串ref属性值('uuid_xxx')。
不如在子组件访问父组件的props,不要强求