Vue js da Slot lar
Vue js da asosan uch xil slot turlari mavjud:
1. Oddiy slotlar (default slots)
2. Nomlangan slotlar (named slots)
Keling, har birini batafsil ko'rib chiqaylik:
1. Oddiy slotlar (default slots):
Oddiy slotlar eng sodda turdagi slotlardir. Ular ota-komponentdan bola-komponentga kontent uzatish uchun ishlatiladi.
<!-- Bola-komponent --> <template> <div> <h2>Bola-komponent</h2> <slot></slot> </div> </template>
<!-- Ota-komponent --> <template> <bola-komponent> <p>Bu oddiy slot orqali uzatilgan kontent</p> </bola-komponent> </template>
2. Nomlangan slotlar (named slots):
Nomlangan slotlar bir nechta slotlarni bir komponentda ishlatish imkonini beradi. Har bir slot o'zining nomi bilan aniqlanadi.
<!-- Bola-komponent --> <template> <div> <header> <slot name="header"></slot> </header> <main> <slot></slot> </main> <footer> <slot name="footer"></slot> </footer> </div> </template> <!-- Ota-komponent --> <template> <bola-komponent> <template #header> <h1>header</h1> </template> <p>Asosiy kontent</p> <template #footer> <p>footer</p> </template> </bola-komponent> </template>
3. Scoped slotlar:
Scoped slotlar bola-komponentdan ota-komponentga ma'lumot uzatish imkonini beradi. Bu juda foydali, chunki u ota-komponentga bola-komponentning ichki holatiga asoslangan holda kontent yaratish imkonini beradi.
<script setup> const items = [{ id: 1, text: 'Birinchi element' }, { id: 2, text: 'Ikkinchi element' }, { id: 3, text: 'Uchinchi element' }] </script>
<!-- Bola-komponent --> <template> <ul> <li v-for="item in items" :key="item.id"> <slot :item="item"> <!-- Standart kontent --> {{ item.text }} </slot> </li> </ul> </template>
<!-- Ota kontent --> <template> <bola-komponent> <template v-slot:default="slotProps"> <strong>{{ slotProps.item.id }}:</strong> {{ slotProps.item.text }} </template> </bola-komponent> </template>
Bu misolda, bola-komponent o'zining items
ma'lumotlarini ota-komponentga uzatadi, va ota-komponent bu ma'lumotlardan foydalanib, o'ziga xos tarzda ro'yxat elementlarini ko'rsatadi.
Slotlar Vue-da komponentlarni juda moslashuvchan qilish uchun kuchli vositadir. Ular yordamida siz komponentlarning tarkibini osongina boshqarish va ularni turli vaziyatlarga moslashtirishi mumkin.
https://t.me/shahzodcodes