Vue中拖动排序功能,引入SortableJs,前端拖动排序。

简介: Vue中拖动排序功能,引入SortableJs,前端拖动排序。

背景:


作为一名前端开发人员,在工作中难免会遇到拖拽功能,分享一个github上一个不错的拖拽js库,能满足我们在项目开发中的需要,支持Vue和React,下面是我在vue后台项目中中使用SortableJS的使用详细流程;


安装:


npm install sortablejs


需要使用的页面引入


import Sortable from "sortablejs";


js代码


在页面生命周期mounted()的时候,调用初始化拖拽实例方法:


mounted() {
    this.test();//方法名可自定义
  },

页面methods中:  


// 拖拽
    test() {
      var that = this;
      var el = document.getElementById("items");
      // 常用
      new Sortable(el, {
        draggable: ".listitem",
        animation: 500,
        onEnd: function (evt) {
          setTimeout(() => {
            console.log('evt');
            console.log(evt);
            // 处理出排序之后的data数据
            that.arr.splice(
              evt.newIndex,
              0,
              that.arr.splice(evt.oldIndex, 1)[0]
            ); //在数据中,将元素从旧位置删除,再新增到新位置
             console.log(arr)
        }
      });
    },


里面的配置:draggable: ".listitem"  将这个改成你需要拖动的实际元素的class,注意不与别的地方的元素重复.


以上代码在拖拽完成后会得到一个evt对象.里面包含了一些信息:


00fc2e98381c498e9d9f5d855d264585.png


里面有你拖动的这个元素拖动前的索引oldIndex和拖动后的索引newIndex,于是我利用这两个索引将数组数组进行处理,处理得到拖动后顺序相同的数据,在后续进行调用接口保存顺序。


that.arr.splice(
       evt.newIndex, 0,that.arr.splice(evt.oldIndex, 1)[0]
     )

以上代码的逻辑:


先将被拖动的项从原数组中删除,而splice方法会返回一个数组,这个数组只有一项,就是被删除项,于是,再将被删除项添加到他新位置上就好了.


相关文章
|
2天前
|
JavaScript 前端开发
vue前端展示【1】
vue前端展示【1】
6 1
|
2天前
|
JavaScript
vue3表格编辑(数据回显)和删除功能实现
vue3表格编辑(数据回显)和删除功能实现
7 1
|
3天前
|
存储 JavaScript 前端开发
使用vue实现一个添加和编辑的功能
使用vue实现一个添加和编辑的功能
10 1
|
9天前
|
JSON JavaScript Java
从前端Vue到后端Spring Boot:接收JSON数据的正确姿势
从前端Vue到后端Spring Boot:接收JSON数据的正确姿势
21 0
|
11天前
|
前端开发 JavaScript 开发者
【专栏:HTML与CSS前端技术趋势篇】前端框架(React/Vue/Angular)与HTML/CSS的结合使用
【4月更文挑战第30天】前端框架React、Vue和Angular助力UI开发,通过组件化、状态管理和虚拟DOM提升效率。这些框架与HTML/CSS结合,使用模板语法、样式管理及组件化思想。未来趋势包括框架简化、Web组件标准采用和CSS在框架中角色的演变。开发者需紧跟技术发展,掌握新工具,提升开发效能。
|
12天前
|
JSON JavaScript 前端开发
前端框架vue的样式操作,以及vue提供的属性功能应用实战
前端框架vue的样式操作,以及vue提供的属性功能应用实战
|
12天前
|
JavaScript 前端开发 数据安全/隐私保护
优秀的前端框架vue,原理剖析与实战技巧总结【干货满满】(二)
优秀的前端框架vue,原理剖析与实战技巧总结【干货满满】(二)
|
12天前
|
JavaScript 前端开发 Python
优秀的前端框架vue,原理剖析与实战技巧总结【干货满满】(一)
优秀的前端框架vue,原理剖析与实战技巧总结【干货满满】(一)
|
存储 JavaScript 网络架构
Vue3新增功能特性
Vue3相比Vue2更新技术点
|
1天前
|
JavaScript
Vue实战-组件通信
Vue实战-组件通信
4 0