vue2-dragula vue拖拽组件
https://github.com/kristianmandrup/vue2-dragula git 地址
https://github.com/kristianmandrup/vue2-dragula-demo/ 安装 并在vue里面使用的详细说明
Drag and drop so simple it hurts
Vue wrapper for dragula drag'n drop library, based on vue-dragula by @Astray-git.
vue 为 dragula 拖拽 包装 减少 代码,基于 vue-dragula。
This library has been refactored, upgraded and extended with powerful new features for use with Vue 2.
代码已经被重构了,为vue 2 升级并且延申了有用的新特性
Call for help: copy error 寻求帮助: 拷贝的错误
This library has a long standing issue with the copy operation, resulting in items being inserted twice in the target container.
这个代码有一个长时间存在的问题在拷贝操作上面,导致目标容器里面会把item插入2次。
I have tried to debug it thoroughly but with no success so far. I suspect it has to do with the Vue2 override of Array splicemethod, used in the ModelManager and the correct use of the Vue update queue.
我非常努力的debug修复它,但是目前为止没有成功,我猜测它和Vue2的数组重写 拆分方法有关系,放在在modelManger并且正确的使用了Vue的更新队列。
You can try the ImmutableModelManager and see if that works better as it will return a new immutable array with a new pointer on each change.
你可以尝试 ImmutableModelManager 并且查看 是否可以更好的工作因为它将返回一共新的不可变的数组在 每次更新的时候。
$set for modifying objects in array for reactivity
Vue.set(this.model, changedModel)
Here a JSFiddle to play with
这里是JSFiddle 运行的地方
Please help fix this bug!
请帮助修复这个bug
You can also try a simple array example in a Vue component, with buttons and handlers to simulate each of the effects (on underlying array model) for the drag effects:
你也可以尝试一共简单的数组 例子在Vue 组件中,通过按钮和操作来模拟 每一种拖拽的效果
copymove
To better help track and fix the problem with the way Vue updates arrays.
为了更好的帮助跟踪和解决 Vue 更新数组的方式的 问题
insertAt(index, insertModel) {
const splicedModel = this.model.splice(index, , insertModel)
const modelAfterInsert = this.model
return splicedModel
}
Currently the splicedModel returns an empty array [] and modelAfterInsert the same (unmodified) array as before the splice. Yet, copy (or Vue?) still ends up inserting the item twice in the UI
目前 拆分模块返回一个空的数组[] 并且 modelAfterInsert 相同的数组作为之前的拆分。
Copy: ensure clone 拷贝: 确认拷贝 的bug
When making a copy error we need to ensure we are not reusing the same reference in the two container models. We need to clone the value first.
So we should be handling this correctly!?
所以我们确定能正确的解决它么!?
上面就是一些bug 没解决的,下面看下API
API
You can access the global app service via Vue.$dragula.$service or from within a component via this.$dragula.$service(recommended for most scenarios).
你可以获取全局的app 服务 通过 Vue.$dragula.$service 或者在组件里面通过 this.$dragula.$service(推荐使用).
You can also create named services for more fine grained control.
你也可以创建命名的服务为更多的细节控制
Service configuration 服务配置
Set dragula options 设置 dragula 的配置项
Use service.options(name, options) to configure service options
使用 service.options(name, options) 来配置服务配置项
(注册拖拽事件的写法)
// ...
new Vue({
// ...
created () {
const service = Vue.$dragula.$service
service.options('my-drake', {
direction: 'vertical',
})
}
})
find drake by name
Use service.find(name) to return a named drake instance registered with the service.
使用 service.find(name) 来返回一个命名为 drake 被服务所注册的实例。或者这样写
Vue.vueDragula.options('second-bag', {
copy: true, //拷贝,
containers,
moves,
accepts,
copySortSource
});
属性在 https://github.com/bevacqua/dragula#optionscontainers 所有options.*** 都是可以被放置在{ }里面的属性
Event handlers via event bus 事件处理通过 事件公交车
See drake events
Use service.eventBus.$on to define drake event handlers //通过 eventBus.$on注册事件
service.eventBus.$on('drop', (args) => {
console.log('drop: ' + args[])
})
on('drop')当拖入放下模块的时候
事件列表在https://github.com/bevacqua/dragula#drakeon-events 查看
有 cancel 取消/drag 拖拽/remove 移走
vue2-dragula vue拖拽组件的更多相关文章
- vue拖拽组件开发
vue拖拽组件开发 创建临时vue项目 先查看node和npm版本,怎么安装就不多多bb了 再安装vue-cli npm install vue-cli -g //全局安装 vue-cli 检测是否安 ...
- Vue.Draggable:基于 Sortable.js 的 Vue 拖拽组件使用中遇到的问题
Sortable.js 介绍 https://segmentfault.com/a/1190000008209715 项目中遇到的问题: A - 我需要在项目的拖拽组件中,使用背景 1 - 想到的第一 ...
- Vue拖拽组件
vue开发公众号项目,***产品需要添加一个新的功能.拖拽功能.一听简单.百度上轮子挺多,直接拉一个过来用着就行.然鹅...兴奋之余,却失望至极.东西很多,没有一个能使得.你让我失望,那我就让你绝望. ...
- Vue 拖拽组件 vuedraggable 和 vue-dragging
一.描述 之前用 vue 写过一个在线的多二维码生成服务,体验地址:https://postbird.gitee.io/vue-online-qrcode/ 后面发现二维码多了之后有时候想要排序,需要 ...
- Vue拖拽组件列表实现动态页面配置
需求描述 最近在做一个后台系统,有一个功能产品需求是页面分为左右两部分,通过右边的组件列表来动态配置左边的页面视图,并且左边由组件拼装起来的视图,可以实现上下拖拽改变顺序,也可以删除. 根据这个需求我 ...
- Vue 拖拽组件 vuedraggable 和 awe-dnd
vuedraggable:https://www.npmjs.com/package/vuedraggable awe-dnd:https://www.npmjs.com/package/awe-dn ...
- Vue 拖拽组件 vuedraggable 、 vue-dragging 、awe-dnd
参考链接:http://www.ptbird.cn/vue-draggable-dragging.html vue-draggable 学习和使用:https://www.jianshu.com/p/ ...
- Vue 可拖拽组件 Vue Smooth DnD 详解和应用演示
本文发布自 https://www.cnblogs.com/wenruo/p/15061907.html 转载请注明出处. 简介和 Demo 展示 最近需要有个拖拽列表的需求,发现一个简单好用的 Vu ...
- vue-slicksort拖拽组件
vue-slicksort拖拽组件 安装 通过npm安装 $ npm install vue-slicksort --save 通过yarn安装 $ yarn add vue-slicksort 插件 ...
随机推荐
- ApacheDbUtilsTest
ApacheDbUtilsTest package p1; import com.DataSourceUtil; import entity.Student; import org.apache.co ...
- 【PAT甲级】1027 Colors in Mars (20 分)
题意: 输入三个范围为0~168的整数,将它们从十三进制转化为十进制然后前缀#输出. AAAAAccepted code: #define HAVE_STRUCT_TIMESPEC #include& ...
- 2月送书福利:ASP.NET Core开发实战
大家都知道我有一个公众号“恰童鞋骚年”,在公众号2020年第一天发布的推文<2020年,请让我重新介绍我自己>中,我曾说到我会在2020年中每个月为所有关注“恰童鞋骚年”公众号的童鞋们送一 ...
- [原]OpeanLayers3 For ArcGIS MapServer
由于OpenLayers3比较新,百度能找到的demo很少,自己不得不参考官方给出的Examples来依葫芦画瓢了,地图服务采用的局方给的ArcGIS MapServer,先上图: 这个例子是按照官方 ...
- 获取Webshell方法总结
一.CMS获取Webshell方法 搜索CMS网站程序名称 eg:phpcms拿webshell.wordpress后台拿webshell 二.非CMS获取Webshell方法 2.1数据库备份获取W ...
- redhat 7.6 apache 服务简单安装-01
rpm -qa | grep httpd //该命令查看apache是否安装,下面图片是已安装,未安装不会显示任何内容 yum install httpd -y ...
- redis介绍及搭建
redis介绍 Redis最适合所有数据in-momory的场景,虽然Redis也提供持久化功能,但实际更多的是一个disk-backed(以写入磁盘的方式进行同步,实现持久化)的功能,跟传统意义上的 ...
- 「CF1023F」Mobile Phone Network
「CF1023F」Mobile Phone Network 传送门 直接钦定那 \(k\) 条边在最小生成树中,然后把最小生成树树剖一下. 每条其它边的效果就是把该边端点路径上的边的权对该边边权取 \ ...
- php 人员权限管理(RBAC)
一.想好这个权限是什么? 就做一个就像是vip的功能,普通用户和vip用户的功能是不一样的,先来考虑一下数据库怎么设计 肯定要有用户表.还有用户所用的角色.然后就是权限功能表:可是在这里面有关联也就 ...
- LATTICE 编程烧录器HW-USBN-2B使用说明
HW-USBN-2B说明文档 1. 引脚定义 编程引脚 名称 编程设备引脚类型 描述 VCC 编程电压 输入 连接VCC到目标设备,典型的ICC=10Ma.板子设计必须考虑VCC的电流供应 ...