vue 如果获取插槽内dom的高度?

就一个类似scroll的组件,然后用slot传入多个内容,高度不一,怎么在vue3中获取每个内容片段?

<Scroll>
    <slot></slot>
</Scroll>

之前的话slot会有个elm属性对应产生的真实DOM,可是现在使用 useSlots().default() 获取后发现没了,是有什么替代方案么?

阅读 3.5k
3 个回答

你在mounted里去获取容器高度不就行了
截屏2023-02-15 19.51.42.png

在slot的组件中写逻辑就行了,在父组件写结构时要有固定类名或id,slot不是具体的某个标签,可理解为一个变量,传的标签高度是多少就是多少

搞个ScrollerItem包一层,去ScrollerItem里面获取,再上报给Scroller

<Scroller>
  <ScrollerItem>slot1<ScrollerItem/>
  <ScrollerItem>slot2<ScrollerItem/>
</Scroller/>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题