vue.js - 如何在组件中只使用一个命名插槽?

`我有一个包含不同插槽的组件,例如:

页眉槽、主槽和页脚槽

base-layout.vue

<template>
  <div class="container">
    <header>
      <slot name="header"></slot>
    </header>
    <main>
      <slot></slot>
    </main>
    <footer>
      <slot name="footer"></slot>
    </footer>
  </div>
</template>

我有另一个组件(主要)用于呈现到屏幕。

<template>
  <base-layout>
    <template v-slot:header>
      <h2>Hello world</h2>
    </template>
  </base-layout>
</template>

在 Main 组件中我只需要使用 header 槽,而不是当我尝试这样做时所有其他槽也被拾取

最佳答案

如果提供了相应的插槽,您可以使用条件渲染来渲染它们:

<template>
  <div class="container">
    <header v-if="$slots.header">
      <slot name="header"></slot>
    </header>
    <main v-if="$slots.default">
      <slot></slot>
    </main>
    <footer v-if="$slots.footer">
      <slot name="footer"></slot>
    </footer>
  </div>
</template>

或者只是做:

<template>
  <div class="container">
   
      <slot name="header"></slot>
  
      <slot></slot>
      <slot name="footer"></slot>

  </div>
</template>

父级提供包装元素,如 headermainfooter

<template>
  <base-layout>
    <template v-slot:header>
        <header><h2>Hello world</h2></header>
    </template>
  </base-layout>
</template

https://stackoverflow.com/questions/67887771/

相关文章:

python - 是否有一个 Binance API 端点来关闭所有头寸?

android - 臭名昭著的高度 :100% issue on chrome for androi

python - 如何找到 pandas 数据框字符串列中的最大单词数?

javascript - onClick 从类更改为函数

c++ - 如何删除结构 vector 的重复项 C++

python - 如何在 python 中反转嵌套列表中的字符串列表?

perl - 如何使用 Perl IPC::Run3 从子进程读取标准输出和标准错误?

bash - 在组合前面的数据的同时在多行中添加值

javascript - 如何从标称字符串中删除 0,但不从 javascript 中的小数中删除

r - ggplot : create a facet grid with free scales