Задать вопрос

Можно ли переиспользорать слоты в компанентах vue?

Есть компонент отвечающий за header, в него я передаю меню через <slot name="menu"></slot>.
Этот слот мне нужен в двух местах, в основном header сайта, и в fixed-header (он появляется, когда пользователь скролит сайт вниз).
Vue.js при донной манипуляции выдает ошибку, но не падает, сайт работает нормально!
Duplicate presence of slot "menu" found in the same render tree - this will likely cause render errors.


На сколько я понимаю из фразы "this will likely cause render errors" (это, возможно, вызовет ошибки рендеринга), то это больше не ошибка, а очень важное предупреждение.

Дак вот, на сколько это предупреждение важно?
Можно ли дублировать слоты? Может это как то по другому нужно делать? (В документации не нашел ни чего про это)
Делал ли уже кто-нибудь так?
  • Вопрос задан
  • 634 просмотра
Подписаться 3 Простой 3 комментария
Решения вопроса 1
FLUNKEY
@FLUNKEY
самовар
Можете использовать Render-функции.

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


<div class="header">
  <render :vnode="$slots.menu"></render>
</div>
<div class="fixed-header">
  <render :vnode="$slots.menu"></render>
</div>


https://ru.vuejs.org/v2/guide/render-function.html...
https://ru.vuejs.org/v2/guide/render-function.html...
https://ru.vuejs.org/v2/api/#vm-slots
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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