登录  /  注册
使用渲染函数将所有项目包装在自定义组件中的Vue 3技巧
P粉926174288
P粉926174288 2023-12-27 21:49:07
[Vue.js讨论组]

我正在尝试构建自己的可排序组件。我想将项目列表传递到它的默认插槽。然后,可排序组件应使用自定义 v-draggable 组件包装所有传递的项目。

<v-sortable handle=".handle">
    <template :key="index" v-for="(item, index) in items">
        <some-complex-component :item="item"></some-complex-component>
    </template>
</v-sortable>

现在,使用我的 v-sortable 组件,我尝试使用自定义 v-draggable 组件将所有给定节点包装在默认插槽中。 我的 v-sortable 组件如下所示:

import { h } from 'vue';

export default {
    name: 'v-sortable',
    props: {
        handle: {
            type: String,
            required: false,
            default: () => {
                return null;
            }
        },
    },
    render () {
        const draggableItems = this.$slots.default().map(slotItem =>
            h('v-draggable', { handle: this.handle }, [slotItem])
        )
        return draggableItems;
    }
}

这按预期工作,除了我的自定义组件 v-draggable 不会呈现为 vue 组件。所有项目都将包装在名为 的 html 标签中。 我该如何继续将 v-draggable 组件实际解析为 Vue 组件?

P粉926174288
P粉926174288

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 //m.sbmmt.com/ All Rights Reserved | php.cn | 湘ICP备2023035733号