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對象.里面包含了一些信息:

里面有你拖動的這個元素拖動前的索引oldIndex和拖動后的索引newIndex,于是我利用這兩個索引將數組數組進行處理,在后續進行調用接口保存順序。

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

以上代碼的邏輯:

先將被拖動的項從原數組中刪除,而splice方法會返回一個數組,這個數組只有一項,就是被刪除項,于是,再將被刪除項添加到他新位置上就好了.

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/39377.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/39377.shtml
英文地址,請注明出處:http://en.pswp.cn/news/39377.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

html實現iphone同款開關

一、背景 想實現一個開關的按鈕&#xff0c;來觸發一些操作&#xff0c;網上找了總感覺看著別扭&#xff0c;忽然想到iphone的開關挺好&#xff0c;搞一個 二、代碼實現 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8&qu…

HDFS原理剖析

一、概述 HDFS是Hadoop的分布式文件系統&#xff08;Hadoop Distributed File System&#xff09;&#xff0c;實現大規模數據可靠的分布式讀寫。HDFS針對的使用場景是數據讀寫具有“一次寫&#xff0c;多次讀”的特征&#xff0c;而數據“寫”操作是順序寫&#xff0c;也就是…

STM32 LL庫+STM32CubeMX--LED呼吸燈

一、前期準備 硬件&#xff1a;STM32F103C8T6開發板調試工具&#xff1a;DAPLink(本次使用)或USB-TTL開發環境&#xff1a;STM32CubeMX、Keil、Vscode(可選)LED&#xff1a;使用PA0(TIM2_CH1)輸出PWM&#xff0c;LED的陰極接GND 二、使用定時器中斷產生PWM STM32F103C8T6在72…

scope,deep穿透的實際應用

一.父組件代碼 <template><div id"app"><h1 class"box"><pageName> </pageName></h1></div> </template><script> import pageName from "../src/components/pageName.vue"; export de…

Java中的==和equals():區別詳解

大家好&#xff01;在 Java 編程中&#xff0c;比較對象的相等性是一個常見的任務。然而&#xff0c;你是否知道在 Java 中有兩種不同的方法來比較對象的相等性&#xff1a; 操作符和 equals() 方法&#xff1f;本文將深入探討這兩種方法之間的區別以及何時使用它們。 操作符 …

arcgis pro3.0-3.0.1-3.0.2安裝教程大全及安裝包下載

一. 產品介紹&#xff1a; ArcGIS Pro 這一功能強大的單桌面 GIS 應用程序是一款功能豐富的軟件&#xff0c;采用 ArcGIS Pro 用戶社區提供的增強功能和創意進行開發。 ArcGIS Pro 支持 2D、3D 和 4D 模式下的數據可視化、高級分析和權威數據維護。 支持通過 Web GIS 在一系列 …

KafkaStream:基本使用

簡介&#xff1a; kafkaStream&#xff1a;提供了對存儲在kafka中的數據進行流式處理和分析的功能 特點&#xff1a; KafkasSream提供了一個非常簡單輕量的Library&#xff0c;它可以非常方便的嵌入到java程序中&#xff0c;也可以任何方式打包部署 入門案例&#xff1a; 1、…

jenkins自動化部署Jenkinsfile文件配置

簡介 使用jenkins部署時會讀取項目中Jenkinsfile文件&#xff0c;文件配置不對會導致部署失敗 文件內容 pipeline {agent anyparameters {string(name: project_name, defaultValue: xxx1, description: 項目jar名稱)string(name: version, defaultValue: xxx2, description…

【Apollo】阿波羅自動駕駛:塑造自動駕駛技術的未來

前言 Apollo (阿波羅)是一個開放的、完整的、安全的平臺&#xff0c;將幫助汽車行業及自動駕駛領域的合作伙伴結合車輛和硬件系統&#xff0c;快速搭建一套屬于自己的自動駕駛系統。 開放能力、共享資源、加速創新、持續共贏是 Apollo 開放平臺的口號。百度把自己所擁有的強大、…

Java之SpringCloud Alibaba【四】【微服務 Sentinel服務熔斷】

Java之SpringCloud Alibaba【四】【微服務 Sentinel服務熔斷】 一、分布式系統遇到的問題1、服務掛掉的一些原因 二、解決方案三、Sentinel&#xff1a;分布式系統的流量防衛兵1、Sentinel是什么2、Sentinel和Hystrix對比3、Sentinel快速開發4、通過注解的方式來控流5、啟動Sen…

DoIP學習筆記系列:(五)“安全認證”的.dll從何而來?

文章目錄 1. “安全認證”的.dll從何而來?1.1 .dll文件base1.2 增加客戶需求算法傳送門 DoIP學習筆記系列:導航篇 1. “安全認證”的.dll從何而來? 無論是用CANoe還是VFlash,亦或是編輯cdd文件,都需要加載一個與$27服務相關的.dll(Windows的動態庫文件),這個文件是從哪…

Go 流程控制

if語句使用 package mainimport "fmt"func main() {score : 700if score 700 {fmt.Println("清華")}//if支持一個初始化語句 初始化語句和條件判斷用;分割if a : 700; a 700 {fmt.Println("清華")}}清華 清華if_else使用 package mainimpor…

機器學習深度學習——seq2seq實現機器翻譯(數據集處理)

&#x1f468;?&#x1f393;作者簡介&#xff1a;一位即將上大四&#xff0c;正專攻機器學習的保研er &#x1f30c;上期文章&#xff1a;機器學習&&深度學習——從編碼器-解碼器架構到seq2seq&#xff08;機器翻譯&#xff09; &#x1f4da;訂閱專欄&#xff1a;機…

yolo源碼注釋1——文件結構

代碼基于yolov5 v6.0 目錄&#xff1a; yolo源碼注釋1——文件結構yolo源碼注釋2——數據集配置文件yolo源碼注釋3——模型配置文件yolo源碼注釋4——yolo-py datasets # 用于存放數據集的默認文件夾yolov5 data # 模型訓練的超參數配置文件以及數據集配置文件 hyps # 存放超參…

C語言學習錯題集(五)

1.最大公倍數的求法(gcd已知) 2.報數 3.字符串最后必須有’\0’!!! 4.例題 5.例題 6.例題 1.最大公倍數的求法(gcd已知) int lcmgcd*(a/gcd)*(b/gcd);2.報數 報數游戲是這樣的&#xff1a;有n個人圍成一圈&#xff0c;按順序從1到n編好號。從第一個人開始報數&#xff0c;報到…

工程項目管理系統源碼+功能清單+項目模塊+spring cloud +spring boot em

? 工程項目管理軟件&#xff08;工程項目管理系統&#xff09;對建設工程項目管理組織建設、項目策劃決策、規劃設計、施工建設到竣工交付、總結評估、運維運營&#xff0c;全過程、全方位的對項目進行綜合管理 工程項目各模塊及其功能點清單 一、系統管理 1、數據字典&#…

代碼保護 code protection

為什么要做代碼保護&#xff1f; 為了保護知識產權并讓攻擊者的利用更加困難&#xff0c;組織應該為其軟件的逆向工程設置障礙(例如&#xff0c;反篡改、調試保護、反盜版特性、運行時完整性)&#xff0c;增加攻擊者分析和利用你的軟件所需的投入。代碼保護對于廣泛分布的代碼…

Markdown使用筆記

Markdown使用筆記 一、段落與強調 important denotes the impossible thing to do Because your ugly appearance, you cannot have a happy ending. 使用*括起來的為斜體 使用**括起來的是粗體 使用~~括起來的是刪除線 在句子后面添加<br>即可換行 二、標題 在…

常見期權策略類型有哪些?

這幾天在做一個期權策略類型的整理分類&#xff0c;怎么解釋期權策略&#xff0c;期權策略是現代金融市場中運用非常廣泛、變化非常豐富、結構非常精妙的金融衍生產品&#xff1b;同時也是一種更為復雜也更為靈活的投資工具&#xff0c;下文介紹常見期權策略類型有哪些&#xf…

iptables安全技術和防火墻

通信五元素 源ip和目標ip 源端口和目標端口 協議 通信四元素 源ip和目標ip 源端口和目標端口 iptables表鏈結構 Netfilter Linux防火墻是由Netfilter組件提供的&#xff0c;Netfilter工作在內核空間&#xff0c;集成在linux內核中 Netfilter是Linux 2.4.x之后新一代的Li…