@Artem0071
Безработный mr. Junior

Как быть с типизированными компонентами?

В общем есть некая проблема
Есть некий feed, в котором есть разные типы новостей, например raz, dva, tri

И с апи приходят данные в таком формате:
[
{
  type: 'raz',
  data: {...}
},
{
  type: 'dva',
  data: {...}
},
...
]


Для каждого типа есть свой компонент который на входе принимает данные через props
Как будет правильнее сделать импорт этих компонентов

Пока что так, но мне кажется что это что то не то
<template>
    <div>

        <div v-for="item in feed">

            <feed-raz v-if="item.type==='raz'" :data="item.data" />
            <feed-dva v-if="item.type==='dva'" :data="item.data" />
            <feed-tri v-if="item.type==='tri'" :data="item.data" />

        </div>

    </div>
</template>
<script>
    import feedRaz from './feedRaz'
    import feedDva from './feedDva'
    import feedTri from './feedTri'

    export default {
        components: {
            feedRaz, feedDva, feedTri
        }
    }
</script>
  • Вопрос задан
  • 98 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега Vue.js
Тут явно напрашивается использование is, должно получится что-то вроде

<component :is="item.type" :data="item.data"></component>


А чтобы вручную не импортировать каждый из компонентов, воспользуйтесь require.context.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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