@fessss

Компонент фильтров на vue?

Подскажите, как лучше всего организовать данный компонент

Есть сам компонент (упрощу код):
<template>
  <toolbar>
    <slot names="fastFillters">
  </toolbar>
  <div class="filters">
    <slot names="filters">  
  </div>
</template>

Ну и место, где используется этот компонент

<filter-component :filters=filters>
    <template v-slot:fastFilters></template>
    <template v-slot:filters>
    // тут добавляем фильтры для slot filters
      <input type="text"/ name="name">
    </template>
</filter-component>


Я не хочу дублировать код в v-slot:fastFilters, но как мне сделать так, чтоб по определенному флагу на фильтрах он появлялся и в fastFilters (Дублировался)

чтоб по итогу была примерно такая конструкция?
<template>
  <toolbar>
    <input type="text" name="name">
  </toolbar>
  <div class="filters">
    <input type="text" name="name">
  </div>
</template>
  • Вопрос задан
  • 188 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега Vue.js
не хочу дублировать код в v-slot:fastFilters, но как мне сделать так, чтоб по определенному флагу на фильтрах он появлялся и в fastFilters

Дублируйте не снаружи, а внутри - то есть, не контент, передаваемый в слот, а сам слот:

<toolbar>
  <slot name="fastFilters">
  <slot name="filters" v-if="а здесь ваш флаг">
</toolbar>
<div class="filters">
  <slot name="filters">
</div>

https://jsfiddle.net/qphgbv8k/
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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