chelovekmuravei
@chelovekmuravei
\(-_-)/ раз два три четыре

Выбор из нескольких компонентов?

Подскажите, можно ли выбрать нужный компонент в шаблоне исходя из некоторых параметров, пусть все зависит от параметра x, if(x === 1) - это компонент A, если 2 - это B и тд. Я нашел только один способ, использовать if else if, где сравниваем значения, и выводим нужный компонент. Возможно есть способы лучше?

<A v-if="x === 1">
<B v-else-if="x === 2">
...
  • Вопрос задан
  • 111 просмотров
Решения вопроса 2
SeaInside
@SeaInside
15 лет пилю все эти штуки
<component :is="x === 1 ? A : B" />

Также работает со строками, если компоненты зарегистрированы локально/глобально/вообще из HTML:

<component :is="x === 1 ? 'div' : 'my-component'"></component>
Ответ написан
0xD34F
@0xD34F Куратор тега Vue.js
computed: {
  component() {
    /*
     * здесь возвращаете имя компонента, в зависимости от... это вам виднее;
     * если действительно будет так, как показано в вопросе - натуральные числа
     * соответствуют компонентам, то можно сложить имена компонентов в массив:
     * return [ 'component-1', 'component-2', 'component-3' ][this.x - 1];
     */
  },
},

<component :is="component" />
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы