vue3 + jsx 插槽带参数的使用以及参数中带有render函数的使用

// 子组件
import {defineComponent, onBeforeMount, reactive, ref, renderSlot} from "vue";
import type { SetupContext } from "vue";

export const list = defineComponent({
    props: {
        list: { type: Array, default: () => [] },
    },
    setup(props,  { slots }: SetupContext) {
        return (h) => (
            
{props.list.map((item: any, index) => { return (
{/* render的使用 */}
{item.render(h, item)}
{/* 插槽的使用 */}
{renderSlot(slots, "A", {'item': item, 'index': index})}
) })}
) } }) // 父组件 const list = [ { id: 1, name: '名字', render(h, row) { // h('div', {}, row.type == "1" ? '正常' : '禁用') return row.type == "1" ? '正常' : '禁用' } } ] function look(scope) { console.log(scope.item) // 输出 {id: 1,name ....} console.log(scope.index) // 输出 下标 0 }

你可能感兴趣的:(vue.js,javascript,前端)