Tukar indeks tatasusunan untuk menunjukkan slaid seterusnya
P粉777458787
2023-09-01 20:10:40
<p><pre class="brush:php;toolbar:false;"><template>
<div class="karusel">
<slot></slot>
<butang @klik="index++">Seterusnya</button>
</div>
</template>
<persediaan skrip>
import { useSlots, onMounted, onUpdated, ref} daripada 'vue';
slot const = useSlots()
indeks const = ref(0)
onMounted(() => {
const defaultSlotElements = slots.default()
console.log(`Slot lalai saya mempunyai elemen ${defaultSlotElements.length}.`)
}),
onUpdated(() =>{
console.log(defaultSlotElements[index])
}
)
</script></pre>
<p>Saya cuba mencipta karusel berasaskan slot. Terima kasih kepada lelaki terdahulu di Stack Overflow yang membantu saya memikirkan cara mengekstrak tatasusunan slot. Sekarang, saya sedang menghadapi masalah lain. Untuk mencipta karusel, saya perlu menukar indeks elemen dalam tatasusunan supaya saya boleh beralih ke slaid seterusnya karusel. Saya kemudiannya terpaksa menyuntik ini ke dalam komponen tayangan slaid saya agar V-show memberikan slot semasa yang lalai kepada 0. Tetapi nilai indeks diubah oleh arahan v-on yang mengubah indeks, jadi ia memilih slot seterusnya atau sebelumnya dalam tatasusunan. Saya tahu saya telah memilih tema kompleks dalam vue, tetapi saya tidak mahu menggunakan versi karusel yang lebih ringkas berdasarkan susunan imej, kerana saya tidak boleh menambah komponen lain di dalamnya. </p>
<p>Ternyata saya tidak boleh memilih objek seterusnya dalam tatasusunan hanya dengan menukar indeks <kod>arr[index]</code>. </p>
Jika anda benar-benar perlu melakukan ini dengan slot, maka anda perlu melakukan ini Menggunakan fungsi Vue render dan JSX
Ini kerjaSFC Playground
Dikemas kini
Fungsi pemaparan boleh digunakan dengan komponen tersuai.
Cuba bina struktur
anda di sini.Taman Permainan SFC
Saya tidak nampak cara lain untuk menggunakan fungsi
默认插槽
而不是使用render
untuk membina apa yang anda mahukan.