十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
這篇文章主要為大家展示了Vue基于vuedraggable如何實(shí)現(xiàn)選中、拖拽、排序效果,內(nèi)容簡而易懂,希望大家可以學(xué)習(xí)一下,學(xué)習(xí)完之后肯定會有收獲的,下面讓小編帶大家一起來看看吧。
泰和ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!
今天有個(gè)朋友說要做個(gè)效果:Vue實(shí)現(xiàn)拖拽排序,要有 checked,輸出結(jié)果是排序后的,要全選,未選中的不能拖動。
其實(shí)我之前基于 Sortable
做過一個(gè)類似的效果。也給他看過了,沒看太明白,他就自己基于 vuedraggable 實(shí)現(xiàn)了一下。
正好有點(diǎn)問題給他解決了一下。廢話不多說,先上最終效果:Vue 拖拽排序效果 測試地址。下面就是最終效果圖。
效果一:實(shí)現(xiàn)選中 和 全選效果
就下面這樣,elementUI 官方 Demo。很簡單毫無挑戰(zhàn)呀。
全部 {{ city }}
效果二:實(shí)現(xiàn)拖拽效果
拖拽效果基于 vuedraggable 實(shí)現(xiàn)。
問題
這里我憑借我的資深經(jīng)(踩)驗(yàn)(坑),先提出幾個(gè)可能存在的問題。
實(shí)現(xiàn)的效果只是記錄選中的項(xiàng),無排序vue 通過數(shù)據(jù)驅(qū)動視圖,也可以理解為數(shù)據(jù)改變,視圖自動改變。
jQuery 通過改變直接視圖先反饋數(shù)據(jù)。
基于上面兩點(diǎn),就可以看到基本上操作 DOM 的庫,Vue 在使用的時(shí)候都有問題。
因?yàn)樗麄冎徊僮髁?DOM,而 Vue 需要是的你修改數(shù)據(jù)。
解決方案 & 代碼
的問題比較好解決。我們在數(shù)據(jù)的時(shí)候根據(jù)數(shù)據(jù)源排序一把就 ok。
因?yàn)閱栴}是庫只修改 DOM,未修改數(shù)據(jù),那么我們可以考慮監(jiān)聽他的回調(diào)事件,然后手動的去修改數(shù)據(jù)(Sortable 我就這樣做的)。Vue.Draggable
的封裝還是有點(diǎn)東西的,他提供了 :list="cities"
讓你傳入數(shù)據(jù)源,然后操作的時(shí)候替你修改數(shù)據(jù)。
全部 {{ city }}
效果三:只有選中的才能拖拽
上面我們已經(jīng)實(shí)現(xiàn)了拖拽。但是未選中也能拖拽排序就感覺怪怪的。
這里有兩個(gè)做法
draggable=".item"
,指定可拖拽元素的 class。DOM
該不該執(zhí)行拖拽。Vue 的庫在使用中要注意操作元數(shù)據(jù),而不是只修改 DOM。
ps:下面在看下vue + vuedraggable 實(shí)現(xiàn)拖拽排序
安裝
npm install vuedraggable
引入
import draggable from 'vuedraggable'
注冊
components: { draggable }
html
![]()
{{item.text}}
以上就是關(guān)于Vue基于vuedraggable如何實(shí)現(xiàn)選中、拖拽、排序效果的內(nèi)容,如果你們有學(xué)習(xí)到知識或者技能,可以把它分享出去讓更多的人看到。