Рекурсивные компоненты — это компоненты, которые вызывают сами себя в своем шаблоне. Это полезно для отображения древовидных структур данных, таких как меню, комментарии или файловые системы, где каждый элемент может содержать вложенные элементы того же типа.
name
в Vue).<template>
<div>
<p>{{ node.name }}</p>
<div v-if="node.children" style="margin-left: 20px;">
<tree-node
v-for="child in node.children"
:key="child.id"
:node="child"
/>
</div>
</div>
</template>
<script>
export default {
name: 'TreeNode', // Важно: имя компонента для рекурсии
props: {
node: {
type: Object,
required: true
}
}
}
</script>
name
) обязательно для рекурсии.v-if="node.children"
.<tree-node>
(имя в шаблоне регистронезависимо).name
рекурсия невозможна.Если рекурсия вызывает проблемы, можно:
v-for
с вычисляемым плоским списком).рекурсивные компоненты — мощный инструмент для работы с вложенными структурами, но требуют аккуратного использования и условий остановки.