【问题标题】:Vue: how to construct a component with a custom v-slot dom?Vue:如何使用自定义的 v-slot dom 构造组件?
【发布时间】:2020-02-05 10:29:54
【问题描述】:

现在我有一个自定义组件,我使用自定义渲染函数:

<script>
export default {
  render(h) {
    return h('InnerComponent', h('div', 'My Content'))
  }
}
</script>

InnerComponent 定义如下:

<template>
  <div>
    <div>Default slot: <slot></slot></div>
    <div>Custom slot: <slot name="custom"></slot></div>
  </div>
</template>

于是h('div', 'My Content')的内容被注入到默认槽中,最终渲染如下:

<div>
  <div>Default slot: <div>My Content</div></div>
  <div>Custom slot: </div>
</div>

那么,如果我想将该内容注入自定义插槽怎么办? (&lt;slot name="custom"&gt;&lt;/slot&gt;),在渲染函数内部,就像我们在下面的模板中使用的那样?

<template>
  <InnerComponent>
    <div v-slot:custom>My Content</div>
  </InnerComponent>
</template>

<script>
export default {
}
</script>

【问题讨论】:

    标签: javascript html vuejs2 vue-component


    【解决方案1】:

    相关文档:https://vuejs.org/v2/guide/render-function.html#The-Data-Object-In-Depth

    您只需要在孩子的选项中指定一个slot

    h('div', { slot: 'custom' }, 'My Content')
    

    【讨论】:

      猜你喜欢
      • 2017-11-07
      • 2022-12-10
      • 2020-09-24
      • 1970-01-01
      • 2023-03-06
      • 2019-12-18
      • 2019-08-15
      • 2019-03-14
      • 2020-12-20
      相关资源
      最近更新 更多