2016-12-09 6 views
2

У меня есть список объектов. Каждый объект содержит поле type, которое используется для определения компонента, который необходимо визуализировать. Например, для типа paragraph мне нужно будет отобразить компонент с именем Paragraph. У меня примерно дюжина этих разных типов компонентов.Оказание списка различных типов компонентов в Vue

В данный момент я просматриваю список в Javascript. Я создаю div со случайным идентификатором и заменяю его компонентом Vue, который я создаю вручную, используя new [ComponentType]({ el: ... }). Однако для этого требуется манипулирование DOM. Есть ли лучший способ, который не требует ручного управления структурой DOM? v-for или аналогичный?

+1

[v-за] (https://vuejs.org/v2/guide/list.html#v-for) + [V-это] (https://vuejs.org/v2/guide /components.html#DOM-Template-Parsing-Caveats)? – joaumg

ответ

1

Да, есть лучший способ. Используйте Dynamic Components.

Вот пример, показанный в этих документах.

var vm = new Vue({ 
    el: '#example', 
    data: { 
    currentView: 'home' 
    }, 
    components: { 
    home: { /* ... */ }, 
    posts: { /* ... */ }, 
    archive: { /* ... */ } 
    } 
})  

<component v-bind:is="currentView"> 
    <!-- component changes when vm.currentView changes! --> 
</component>  
+0

Я бы добавил пример быстрого кода здесь, прежде чем полиция Stackoverflow придет и удалит ваш ответ. –

Смежные вопросы