P粉1558329412023-09-02 12:37:55
如果你真的需要用插槽來做到這一點,那麼你就必須這麼做 使用 Vue 渲染函數和 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>
這是工作證監會遊樂場
更新
渲染函數可以與自訂元件一起使用。
這裡嘗試建立您的
我沒有看到任何其他方法可以使用預設插槽
而不是使用render
函數來建立您想要的內容。