By_Engine
@By_Engine

Есть ли способ не выводить содержимое слота по умолчанию?

Есть компонент, у которого есть несколько именованных слотов.
В одном слоте есть содержимое по умолчанию. Мне не нужно выводить этот слот в компоненте. Но если я его не укажу, то будет вставлено содержимое по умолчанию. От содержимого по умолчанию отказаться нельзя.

<!-- Компонент -->
<template>
  <div>
    <slot name="one">Контент по умолчанию</slot>
    <slot name="two"></slot>
  </div>
</template>


<!-- Родительский компонент -->
<template>
  <div id="app">
    <Component>
      <!-- Содержимое v-slot:one выводится -->
      <template v-slot:two>content</template>
    </Component>
  </div>
</template>


Придумал такой хак, но он мне не нравится
<template>
  <div id="app">
    <Component>
      <template v-slot:one><div v-show="false"></div></template>
      <template v-slot:two>content</template>
    </Component>
  </div>
</template>
  • Вопрос задан
  • 179 просмотров
Решения вопроса 1
delphinpro
@delphinpro
frontend developer
<slot name="one" v-if="$slots.one"></slot>
<div v-else>Контент по умолчанию</div>
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы