最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue.Draggable實(shí)現(xiàn)交換位置

 更新時(shí)間:2022年04月07日 09:37:20   作者:Landing...  
這篇文章主要為大家詳細(xì)介紹了Vue.Draggable實(shí)現(xiàn)交換位置,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

Vue.Draggable實(shí)現(xiàn)交換位置,供大家參考,具體內(nèi)容如下

前言

最近的一個(gè)項(xiàng)目接觸了到了Vue.Draggable這個(gè)組件。不過我們的需求和Vue.Draggable這個(gè)組件所支持的有些出入。這個(gè)拖拽組件屬于插入的模式。一但拖拽的是相間的元素(中間隔著幾個(gè)元素),那么拖拽元素就會(huì)占據(jù)被拖拽元素的位置,而后續(xù)元素位置逐級(jí)向下減一。

如下圖:

c拖拽到a的位置,表現(xiàn)為c插入到a的前面。所以變?yōu)榱薱ab。

需求

實(shí)現(xiàn)交換而非插入及上圖要變成(cba)

實(shí)現(xiàn)方式

想要阻止它插入是不可能,我們只能等它插入結(jié)束后對(duì)我們想要的元素進(jìn)行操作。比如拿到頭和尾部兩個(gè)索引。交換他們在數(shù)組中的位置。需要注意的是,因?yàn)橥献r(shí)已經(jīng)改變數(shù)組里面元素的位置了,因此我們需要在拖拽前copy一個(gè)和原數(shù)組一樣的數(shù)組。

實(shí)現(xiàn)步驟

1、 選擇一個(gè)適合自己的方法,需要能夠獲得開始索引和結(jié)束索引
end,sort,update都可以

2、深拷貝

copyList(){
? ?this.copyList=this.list.slice(0)
}

3、通過索引來操作copyList數(shù)組位置

const item=this.copyList[oldIndex]
this.copyList.splice(oldIndex, 1, this.copyList[newIndex]);
this.copyList.splice(newIndex, 1, item);

4、將copyList賦值給list,并在結(jié)尾處獲得新的拷貝的copyList

this.list=this.copyList
this.copyList = this.list.slice(0);

全部代碼

import draggable from "@/vuedraggable";
let id = 1;
export default {
? name: "simple",
? display: "Simple",
? order: 0,
? components: {
? ? draggable,
? },
? data() {
? ? return {
? ? ? enabled: true,
? ? ? list: [{ name: "a" }, { name: "b" }, { name: "c" }],
? ? ? dragging: false,
? ? ? index: 0,
? ? ? copyList: [],
? ? };
? },
? computed: {
? ? draggingInfo() {
? ? ? return this.dragging ? "under drag" : "";
? ? },
? },
? created() {
? ? this.copyList = this.list.slice(0);
? },
? methods: {
? ? add: function () {
? ? ? this.list.push({ name: "Juan " + id, id: id++ });
? ? },
? ? replace: function () {
? ? ? this.list = [{ name: "Edgard", id: id++ }];
? ? },
? ? end({ oldIndex, newIndex }) {
? ? ? const item = this.copyList[oldIndex];
? ? ? this.copyList.splice(oldIndex, 1, this.copyList[newIndex]);
? ? ? this.copyList.splice(newIndex, 1, item);
? ? ? this.list = this.copyList;
? ? ? this.copyList = this.list.slice(0);
? ? },
? }
};
<draggable
? ? ? ? :list="list"
? ? ? ? :disabled="!enabled"
? ? ? ? class="list-group"
? ? ? ? ghost-class="ghost"
? ? ? ? :move="checkMove"
? ? ? ? @end="end"
? ? ? ? @sort="sort"
? ? ? ? @update="update"
? ? ? ? @start="start"
? ? ? >
? <div class="list-group-item" v-for="element in list" :key="element.name">{{ element.name }}</div>
</draggable>

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解vue的diff算法原理

    詳解vue的diff算法原理

    這篇文章主要介紹了詳解vue的diff算法原理,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-05-05
  • 詳解從零搭建 vue2 vue-router2 webpack3 工程

    詳解從零搭建 vue2 vue-router2 webpack3 工程

    本篇文章主要介紹了詳解從零搭建 vue2 vue-router2 webpack3 工程,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-11-11
  • Vue?3?中動(dòng)態(tài)獲取高寬的思路詳解

    Vue?3?中動(dòng)態(tài)獲取高寬的思路詳解

    這篇文章主要介紹了Vue3中動(dòng)態(tài)獲取高寬,實(shí)現(xiàn)思路大概是將監(jiān)聽到的高度賦給你需要設(shè)置的對(duì)象,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友一起看看吧
    2023-10-10
  • vue通信方式EventBus的實(shí)現(xiàn)代碼詳解

    vue通信方式EventBus的實(shí)現(xiàn)代碼詳解

    這篇文章主要介紹了vue通信方法EventBus的實(shí)現(xiàn)代碼,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-06-06
  • Vue深入理解之v-for中key的真正作用

    Vue深入理解之v-for中key的真正作用

    為了給Vue一個(gè)提示,以便它能跟蹤每個(gè)節(jié)點(diǎn)的身份,從而重用和重新排序現(xiàn)有元素,你需要為每項(xiàng)提供一個(gè)唯一key屬性,下面這篇文章主要給大家介紹了關(guān)于Vue深入理解之v-for中key的真正作用,需要的朋友可以參考下
    2022-05-05
  • vue如何將后臺(tái)返回的數(shù)字轉(zhuǎn)換成對(duì)應(yīng)的文字

    vue如何將后臺(tái)返回的數(shù)字轉(zhuǎn)換成對(duì)應(yīng)的文字

    這篇文章主要介紹了vue如何將后臺(tái)返回的數(shù)字轉(zhuǎn)換成對(duì)應(yīng)的文字,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • Vue之定義全局工具類問題

    Vue之定義全局工具類問題

    這篇文章主要介紹了Vue之定義全局工具類問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Vue中的Strorage本地化存儲(chǔ)詳解

    Vue中的Strorage本地化存儲(chǔ)詳解

    這篇文章主要介紹了Vue中的Strorage本地化存儲(chǔ)詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • 詳解如何在nuxt中添加proxyTable代理

    詳解如何在nuxt中添加proxyTable代理

    這篇文章主要介紹了詳解如何在nuxt中添加proxyTable代理,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-08-08
  • vue關(guān)于Promise的使用方式

    vue關(guān)于Promise的使用方式

    這篇文章主要介紹了vue關(guān)于Promise的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06

最新評(píng)論

巴楚县| 南京市| 哈尔滨市| 襄垣县| 广汉市| 安阳市| 望奎县| 拉萨市| 岢岚县| 尚志市| 余干县| 武隆县| 隆子县| 平利县| 垦利县| 利辛县| 龙川县| 耒阳市| 洛阳市| 遂宁市| 桃源县| 永嘉县| 湖南省| 本溪市| 昌黎县| 台中市| 富源县| 剑阁县| 丹阳市| 佛教| 莎车县| 清涧县| 阜南县| 宜兰市| 兴安县| 永泰县| 洛扎县| 姜堰市| 永州市| 美姑县| 台山市|