这个案例是利用vuedraggable渲染动态组件,

bug:拖拽失效  vue2是需要在component这个标签上v-for,vue3是不需要的

<template>
  <div>
      <div>
        <vuedraggable
          ref="drag"
          v-model="state.listComp"
          v-bind="state.dragOptions"
          :forceFallback="true"
          item-key="id"
          handle=".draggableItem"
        >
          <template #item="{ element }">
            <component
              :key="element.name"
              :is="element.name"
              v-bind="element"
              class="item"
            >
            </component>
          </template>
        </vuedraggable>
      </div>
  </div>
</template>

<script setup>
import vuedraggable from "vuedraggable";
import { reactive } from "vue";

const state = reactive({
  date: "2023-08-16",
  listComp: [
    // 数据
  ],
  dragOptions: {
    animation: 0,
    disabled: false,
    group: "description",
    ghostClass: "ghost",
  },
});

</script>

<style lang="scss" scoped><style>

GitHub 加速计划 / vu / vue
80
16
下载
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
最近提交(Master分支:4 个月前 )
73486cb5 * chore: fix link broken Signed-off-by: snoppy <michaleli@foxmail.com> * Update packages/template-compiler/README.md [skip ci] --------- Signed-off-by: snoppy <michaleli@foxmail.com> Co-authored-by: Eduardo San Martin Morote <posva@users.noreply.github.com> 6 个月前
e428d891 Updated Browser Compatibility reference. The previous currently returns HTTP 404. 6 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐