前段時間公司提一個需求:就是在后台管理頁增加banner管理列表,通過拖動列表改變banner順序。 之前沒有遇到過這樣的需求,我就在網上找到了Vue.Draggable。感覺效果還不錯,這里就寫一下使用的心得體會。
首先附上:github地址:https://github.com/SortableJS/Vue.Draggable
github上面的文檔都是英文的看不懂,於是找了csdn的這篇中文文檔:https://blog.csdn.net/zjiang1994/article/details/79809687
我們的需求是通過拖動給banner排序,那么就必須在拖動完了以后把新的的列表順序發送給后台。
Vue.Draggable有一個onUpdate方法:排序之后的回調函數,很好這就是我們需要的。就在draggable的模塊寫 :onUpdate="sortChange()" (sortChange是上傳后台的方法),成功拿到了改變之后的數據也提交到了后台。但是卻發現了一個比較嚴重的問題,就是頁面有任何操作的時候都會觸發該方,這就很無語了。我又把這些方法都試了一遍,結果都一樣。
- onStart: 開始拖動時的回調函數
- onEnd: 拖動結束時的回調函數
- onAdd: 添加單元時的回調函數
於是我又在網上搜解決方法,看到別是都是用的@來替換:on,然后我就也把:on換成@符,之后再試就不能觸發事件了。然后又看到有人用的change而不是Update,然后又把Update改成change。再試一下,很完美,再也不隨隨便觸發事件了
