blocks: [
{
id: 1,
blockType: 'row',
classes: {
base: 12,
sm: 12,
md: 12,
lg: 12,
xl: 12,
},
blocks: [
{
id: 2,
blockType: 'col',
classes: {
base: 6,
sm: 5,
md: 4,
lg: 3,
xl: 2,
},
content: {
text: 'Блок 1'
},
},
{
id: 3,
blockType: 'col',
classes: {
base: 6,
sm: 5,
md: 4,
lg: 3,
xl: 2,
},
content: {
text: 'Блок 2'
},
}
]
},
<template>
<div class="container">
<BlockRender :items="blocks"></BlockRender>
</div>
</template>
<template>
<div v-for="col in items" v-bind:key="col.id" v-bind:class="getBlockClass(col)">
<template v-if="col.content">{{col.content.text}}</template>
<BlockRender
v-if="col.blocks && col.blocks.length"
:items="col.blocks"
></BlockRender>
</div>
</template>
<script>
export default {
name: 'BlockRender',
props: {
items: Array
},
methods: {
getBlockClass: function (col) {},
},
}
</script>
<template>
должен быть один элемент. А добавление еще div в такой вложенности ломает дерево. Как сделать вывод такой структуры неограниченной вложенности без лишних блоков? <template>
<fragment v-for="col in items" v-bind:key="col.id">
<template v-if="col.content">{{col.content.text}}</template>
<BlockRender
v-if="col.blocks && col.blocks.length"
:items="col.blocks"
></BlockRender>
</fragment>
</template>