Назад к вопросам
Middle
4
Расскажи про слоты во Vue: как использовала, в том числе scoped slots?
Компании, где спрашивали
Киберпротект
Ответ от нейросети
sobes.tech AI
В Vue слоты используются для передачи контента из родительского компонента в дочерний, позволяя создавать более гибкие и переиспользуемые компоненты.
Обычные слоты позволяют вставлять произвольный HTML или компоненты внутрь дочернего компонента:
<ChildComponent>
<p>Контент для слота</p>
</ChildComponent>
В дочернем компоненте:
<template>
<div>
<slot></slot>
</div>
</template>
Scoped slots позволяют передавать данные из дочернего компонента в родительский через слот, что полезно для динамического отображения.
Пример использования scoped slot:
<!-- ChildComponent.vue -->
<template>
<div>
<slot :user="user"></slot>
</div>
</template>
<script>
export default {
data() {
return { user: { name: 'Иван', age: 30 } };
}
}
</script>
В родительском компоненте:
<ChildComponent v-slot:default="slotProps">
<p>Имя: {{ slotProps.user.name }}</p>
<p>Возраст: {{ slotProps.user.age }}</p>
</ChildComponent>
Таким образом, scoped slots позволяют дочернему компоненту делегировать часть логики отображения родителю, делая компоненты более универсальными.