sortablejs/vue.draggable「建议收藏」 -金沙1005

sortablejs/vue.draggable「建议收藏」vue组件(vue.js2.0)或指令(vue.js1.0)允许拖放和与视图模型数组同步。基于并提供sortable.js的所有功能对于vue3见vue.draggable.next演示现场演示https://sortablejs.github.io/vue.draggable/https://david-desmaisons.github.io/draggable-example/特征完全支持sortable.js功能: 支持触控设备 支持

vue 组件 (vue.js 2.0) 或指令 (vue.js 1.0) 允许拖放和与视图模型数组同步。

基于并提供

对于 vue 3

演示

sortablejs/vue.draggable「建议收藏」

现场演示

特征

  • 完全支持功能:
    • 支持触控设备
    • 支持拖动手柄和可选文本
    • 智能自动滚动
    • 支持不同列表之间的拖放
    • 没有 jquery 依赖
  • 保持同步 html 和查看模型列表
  • 兼容 vue.js 2.0 转换组(过渡动画)
  • 支持撤销操作
  • 需要完全控制时报告任何更改的事件
  • 重用现有的 ui 库组件(如、或等)并使用tagcomponentdataprops使它们可拖动 

安装

使用 npm 或yarn

yarn add vuedraggable
npm i -s vuedraggable
sortablejs/vue.draggable「建议收藏」

为防止网络爬虫,请关注公众号回复”口令”

激活idea 激活clion
datagrip dataspell
dotcover dotmemory
dottrace goland
phpstorm pycharm
resharper reshac
rider rubymine
webstorm 全家桶

注意它对于 vue 2.0 是 vuedraggable 而不是对于 1.0 版的 vue-draggable

with direct link



对于 vue.js 2.0

使用可拖动组件:

典型用途:


   
{ {element.name}}

.vue 文件:

  import draggable from 'vuedraggable'
  ...
  export default {
        components: {
            draggable,
        },
  ...

transition-group


    
        
{ {element.name}}

可拖动组件应该直接包装可拖动元素,或者transition-component包含可拖动元素。

with footer slot:


    
{ {element.name}}

with header slot:


    
{ {element.name}}

使用 vuex:

computed: {
    mylist: {
        get() {
            return this.$store.state.mylist
        },
        set(value) {
            this.$store.commit('updatelist', value)
        }
    }
}

props

value

type: array
required: false
default: null

可拖动组件的输入数组。通常与内部元素 v-for 指令引用的数组相同。这是使用 vue.draggable 的首选方式,因为它与 vuex 兼容。它不应该直接使用,但只能通过v-model指令:

list

类型:array
必填:false
默认值:null

替代value属性,列表是一个与拖放同步的数组。主要区别在于list属性是由可拖动组件使用 splice 方法更新的,而value属性是不可变的。不要与 value prop 一起使用。

所有可排序的选项

2.19 版中的新功能

从 2.19 版本开始,可排序选项可以直接设置为 vue.draggable 属性。

这意味着所有都是有效的可排序属性,但所有以“on”开头的方法除外,因为可拖动组件通过事件公开相同的 api。

支持 kebab-case 属性:例如ghost-class属性 将转换为ghostclass可排序选项。

设置句柄、可排序和组选项的示例:


      

tag

类型:string
默认值:'div'

可拖动组件创建为包含插槽的外部元素的元素的 html 节点类型。也可以将 vue 组件的名称作为元素传递。在这种情况下,可拖动属性将被传递给创建组件。如果您需要为创建的组件设置道具或事件,另请参阅

clone

类型:function
必填:false
默认值:(original) => { return original;}

当克隆选项为真时,在源组件上调用函数以克隆元素。唯一的参数是要克隆的 viewmodel 元素,返回值是它的克隆版本。默认情况下 vue.draggable 重用 viewmodel 元素,所以如果你想克隆或深度克隆它,你必须使用这个钩子。

move

类型:function
必填:false
默认值:null

如果不为 null,则此函数将以与类似的方式调用。返回 false 将取消拖动操作。

function onmovecallback(evt, originalevent){
   ...
    // return false; — for cancel
}

相同的属性,以及 3 个附加属性:

  • draggedcontext: 链接到拖动元素的上下文
    • index: 拖拽元素索引
    • element: 拖拽元素底层视图模型元素
    • futureindex:如果接受放置操作,则拖动元素的潜在索引
  • relatedcontext: 关联到当前拖动操作的上下文
    • index: 目标元素索引
    • element:目标元素视图模型元素
    • list: 目标列表
    • component: 目标 vuecomponent

html:

javascript:

checkmove: function(evt){
    return (evt.draggedcontext.element.name!=='apple');
}

查看完整示例: , 

componentdata

类型:object
必填:false
默认值:null

该 props 用于将附加信息传递给声明的子组件。
价值:

  • props:要传递给子组件的属性
  • attrs: 传递给子组件的属性
  • on:要在子组件中订阅的事件

示例(使用):


    
        
{ {e.description}}
methods: {
    handlechange() {
      console.log('changed');
    },
    inputchanged(value) {
      this.activenames = value;
    },
    getcomponentdata() {
      return {
        on: {
          change: this.handlechange,
          input: this.inputchanged
        },
        attrs:{
          wrap: true
        },
        props: {
          value: this.activenames
        }
      };
    }
  }

 events

  • 支持可排序事件:

    startaddremoveupdateendchooseunchoosesortfilter,clone
    每当 onstart, onadd, onremove, onupdate, onend, onchoose, onunchoose, onsort, onclone 被 sortable.js 以相同的参数触发时,就会调用事件。

    请注意,sortablejs onmove 回调与

html:

  • 更改事件

    change当 list prop 不为 null 且对应的数组因拖放操作而改变时触发事件。
    使用包含以下属性之一的参数调用此事件:

    • added: 包含添加到数组中的元素的信息
      • newindex: 添加元素的索引
      • element: 添加的元素
    • removed:包含从数组中删除的元素的信息
      • oldindex: 删除前元素的索引
      • element: 移除的元素
    • moved:包含在数组中移动的元素的信息
      • newindex: 被移动元素的当前索引
      • oldindex: 被移动元素的旧索引
      • element: 移动的元素

插槽

限制:页眉或页脚插槽都不能与转换组一起使用。

header

使用header插槽在 vuedraggable 组件内添加不可拖动元素。重要提示:它应该与可拖动选项一起使用来标记可拖动元素。请注意,无论其在模板中的位置如何,标题槽都将始终添加在默认槽之前。如:


    
{ {element.name}}

footer

使用footer插槽在 vuedraggable 组件内添加不可拖动元素。重要提示:它应该与可拖动选项一起使用来标记可拖动元素。请注意,无论其在模板中的位置,页脚插槽将始终添加在默认插槽之后。例如:


    
{ {element.name}}

gotchas

  • vue.draggable 子项应该始终使用 v-for 指令映射列表或值道具

    • 您可以使用和插槽来绕过此限制。
  • v-for 中的子元素应该像 vue.js 中的任何元素一样被键入。请特别注意提供相关的关键值:

    • 通常提供数组索引作为键不起作用,因为键应链接到项目内容
    • 克隆的元素应该提供更新的键,例如使用

例子

完整的演示示例

 

js555888金沙老品牌的版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由思创斯整理,转载请注明出处:https://ispacesoft.com/118899.html

(0)

相关推荐

  • vue组件传值ref_vue组合组件说明:关于ref注册时间的重要说明:因为ref本身是作为渲染结果被创建的,在初始渲染的时候你不能访问它们-它们还不存在!$refs也不是响应式的,因此你不应该试图用它在模板中做数据绑定。$refs只会在组件渲染完成之后生效,并且它们不是响应式的。这仅作为一个用于直接操作子组件的“逃生舱”——应该避免在模板或计算属性中访问$refs。…

    2022年11月27日
  • vue路由routerview_路由器上的ap和router路由原理 传统开发方式 url改变后 立刻发起请求,响应整个页面,渲染整个页面 spa 锚点值改变后 不会发起请求,发起ajax请求,局部改

  • 为什么 vue 中不要用 index 作为 key?(diff 算法详解)[亲测有效]vue 中的 key 是用来做什么的?为什么不推荐使用 index 作为 key?常常听说这样的问题,本篇文章带你从原理来一探究竟。 本文的结论对于性能的毁灭是针对列表子元素顺序被改变、或者子元素被删除的特殊情况,提前说明清楚。 那么它的 vnode 也就是虚拟 dom 节点大…

  • vue中下拉菜单的赋值问题「建议收藏」vue中下拉菜单的值选中了,但是没有显示到画面上,可能是因为赋值的方式导致,应该使用this.$set进行赋值

    2022年12月12日
  • 细说vue react angular 区别,快速搞定技术选型![通俗易懂]入行三年多,由于最近开始接手angular项目,到此为止,算是三大框架都撸了一遍了,不敢说熟练使用,但是也是有了一些使用和选型心得了,在此尝试细说三大框架的优点以区别,加深自己理解的同时,帮助大家快速搞定技术选型。 react:蚂蚁数据可视化、爱彼迎、飞猪、阿里大于、虾米音乐、…

  • vue全家桶系列 什么是vue全家桶?–概念及功能总结用了半周时间勉强操作git,准备保研之余还要完成开发任务,甚至没有时间看paper,太难了o(╥﹏╥)o,不过学还是要学的,用别人一句话:武林至尊,宝刀react,号令天下,莫敢不从,vue不出,谁与争锋,react/vue全家桶系列已经变成了各大巨头的前端开发必备技术栈,开始系统的学习之前不妨了解一下整体的框架以及各部分的作用。vue全家桶一共有四个部分,各个部分都具有不同的作用,他们分别是…

  • vuex–学习笔记(三)模板获取mutations及mapmutations传参「终于解决」前言:本文主要用于帮助笔者和新人理解vuex的使用,因个人能力有限,有什么建议可以留言一起探讨。接上文:vuex–学习笔记(二)在组件中如何获取vuex的state对象中的属性我们知道,在vuex中mutations是专门用来修改state中属性状态的方法集合(对象),同时,我们也了解到,在组件中可以使用$store.commit(‘方法名’,传参)来提交修改请求。这种方法比较简单。下面我们再看…

  • 前言附上vue3.0文档:vue3中文文档-vuejsvue2.x获取dom

    this.$refs.myrefvue3.0获取dom

联系金沙1005

关注“java架构师必看”公众号

回复4,添加站长微信。

附言:ispacesoft.com网而来。

关注微信
网站地图