Jika anda benar-benar perlu melakukan ini dengan slot, maka anda perlu melakukan ini Menggunakan fungsi Vue render dan JSX
<script setup> import { useSlots, onMounted, onUpdated, ref, h} from 'vue'; const slots = useSlots() const index = ref(0) const current = ref(null) onMounted(() => { const defaultSlotElements = slots.default() current.value = defaultSlotElements[0] }), onUpdated(() =>{ console.log(defaultSlotElements[index]) } ) const render = () => { return h('div', { class: 'carousel'}, [ h('p', `My default slot has ${slots.default().length} elements.`), h('div', slots.default()[index.value]), h('p', `Picture ${ index.value + 1 }`), h('button', { onClick: () => { index.value = index.value + 1 == slots.default().length ? 0 : index.value + 1 } }, 'Next') ]); }; </script> <template> <render /> </template>
Ini kerjaSFC Playground
Dikemas kini
Fungsi pemaparan boleh digunakan dengan komponen tersuai.
Cuba bina struktur
anda di sini.
Saya tidak nampak cara lain untuk menggunakan fungsi 默認(rèn)插槽
而不是使用render
untuk membina apa yang anda mahukan.