你可以在 Vue 模板中渲染 VNode 吗?

2022-01-25 00:00:00 vue.js vue-component vuejs2

我有一个渲染函数将一些数据传递到一个作用域插槽的情况.作为此数据的一部分,我想包括一些由渲染函数构造的 VNode,它们可以选择由作用域插槽使用.在模板中编写作用域插槽以输出接收到的原始 VNode 时是否有任何方法?

I have an situation where I have a render function that passes some data to a scoped slot. As part of this data I'd like to include some VNodes constructed by the render function that could optionally be used by the scoped slot. Is there anyway when writing the scoped slot in a template to output the raw VNodes that were received?

推荐答案

您可以使用功能组件为模板的该部分呈现 vnode:

You can use a functional component to render the vnodes for that section of your template:

<some-component>
  <div slot-scope="{ vnodes }">
    <vnodes :vnodes="vnodes"/>
  </div>
</some-component>

components: {
  Vnodes: {
    functional: true,
    render: (h, ctx) => ctx.props.vnodes
  }
}

相关文章