前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记录一下vuedraggable clone的坑,获取数据

记录一下vuedraggable clone的坑,获取数据

作者头像
小贝壳
发布2020-08-31 10:11:44
4.8K1
发布2020-08-31 10:11:44
举报
文章被收录于专栏:贝塔博客贝塔博客贝塔博客

vuedraggable 提供了一个 clone事件,这个事件会返回 克隆目标、来源、索引等相关信息。

事件名称

说明

clone

从一个数组拖拽到另外一个数组时触发的事件和add不同,clone是复制了数组元素

文档地址:点击查看

<draggable
      :class="{'el-row':true,'drag-area':true,'empty':components.length==0}"
      :list="components"
      @add="add"
      @end="end"
      @clone="clone"  //这里特别注意
      :group="{name: 'people',pull: 'clone',put: true}"
      :animation="150"
  >
    <ComponentRender class="col" v-for="element in components" :key="element.id" :element="element"
                     @select="selectComponent"></ComponentRender>

  </draggable>

如果想获取克隆对象数据的事件,应该使用属性,而名称和clone一模一样

<draggable
 :list="components"
 @clone='cloneA'//这里获取的是个原生对象相关的
 :clone='cloneB' //这里是获取的list中的某一项,可以通过加工后返回></draggable>

clone 属性事件

clone(origin) {

      //这一步最关键,没处理好,后面会数据混乱

      //通过转成字符串,让他变成一个新对象,不然拖拽第二个组件将会和第一个组件一模一样,改变第一个组件第二个、第三个也会跟着变动。
      const data = JSON.parse(JSON.stringify(origin))
      data.id = parseInt(new Date().getMilliseconds() + "" + Math.ceil(Math.random() * 100000)).toString(16);

      return data
    }
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-08-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档