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

vue使用vuedraggable對(duì)列表進(jìn)行拖拽排序

 更新時(shí)間:2024年12月11日 15:28:29   作者:前端太佬  
vuedraggable 是一個(gè)基于 Vue 的拖拽排序組件,它可以讓你輕松地在 Vue 應(yīng)用中實(shí)現(xiàn)拖拽排序功能,下面就跟隨小編一起來了解下它的具體應(yīng)用吧

vuedraggable 是一個(gè)基于 Vue 的拖拽排序組件,它可以讓你輕松地在 Vue 應(yīng)用中實(shí)現(xiàn)拖拽排序功能。vuedraggable 底層是基于 Sortable.js 實(shí)現(xiàn)的,它支持排序、拖拽、交換等操作。

安裝 vuedraggable

通過 npm 安裝

如果你使用的是 npm,可以通過以下命令安裝 vuedraggable

npm install vuedraggable

通過 CDN 引入

如果你不想使用 npm,可以直接通過 CDN 引入:

<script src="https://cdn.jsdelivr.net/npm/vuedraggable@next"></script>

基本用法

以下是一個(gè)簡單的 vuedraggable 使用示例,展示了如何在 Vue 組件中實(shí)現(xiàn)一個(gè)可拖拽排序的列表。

示例 1:基本的拖拽排序

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>vuedraggable 示例</title>
</head>
<body>
    <div id="app">
        <draggable v-model="items" :group="{ name: 'items' }" :animation="200">
            <div v-for="item in items" :key="item.id" class="item">
                {{ item.name }}
            </div>
        </draggable>
    </div>

    <script src="https://cdn.jsdelivr.net/npm/vue@next"></script>
    <script src="https://cdn.jsdelivr.net/npm/vuedraggable@next"></script>
    <script>
        const app = Vue.createApp({
            data() {
                return {
                    items: [
                        { id: 1, name: 'Item 1' },
                        { id: 2, name: 'Item 2' },
                        { id: 3, name: 'Item 3' },
                        { id: 4, name: 'Item 4' },
                    ],
                };
            },
        });

        app.mount("#app");
    </script>
</body>
</html>

代碼解釋:

v-model="items":將組件的數(shù)據(jù)與父組件綁定。在此案例中,items 是一個(gè)數(shù)組,存儲(chǔ)了所有的列表項(xiàng)。

:group="{ name: 'items' }":指定拖拽排序的組。如果你有多個(gè) draggable 列表,并希望它們之間能夠拖拽排序,可以使用 group 來指定組。

:animation="200":設(shè)置拖拽時(shí)的動(dòng)畫效果,單位為毫秒。

進(jìn)階用法

示例 2:實(shí)現(xiàn)多個(gè)列表的拖拽排序(跨列表拖拽)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>vuedraggable 示例</title>
</head>
<body>
    <div id="app">
        <div class="list-container">
            <div class="list">
                <h3>List 1</h3>
                <draggable v-model="list1" :group="{ name: 'items', pull: 'clone', put: true }">
                    <div v-for="item in list1" :key="item.id" class="item">
                        {{ item.name }}
                    </div>
                </draggable>
            </div>

            <div class="list">
                <h3>List 2</h3>
                <draggable v-model="list2" :group="{ name: 'items', pull: false, put: true }">
                    <div v-for="item in list2" :key="item.id" class="item">
                        {{ item.name }}
                    </div>
                </draggable>
            </div>
        </div>
    </div>

    <script src="https://cdn.jsdelivr.net/npm/vue@next"></script>
    <script src="https://cdn.jsdelivr.net/npm/vuedraggable@next"></script>
    <script>
        const app = Vue.createApp({
            data() {
                return {
                    list1: [
                        { id: 1, name: 'Item 1' },
                        { id: 2, name: 'Item 2' },
                    ],
                    list2: [
                        { id: 3, name: 'Item 3' },
                        { id: 4, name: 'Item 4' },
                    ],
                };
            },
        });

        app.mount("#app");
    </script>

    <style>
        .list-container {
            display: flex;
            gap: 20px;
        }

        .list {
            width: 200px;
            border: 1px solid #ccc;
            padding: 10px;
        }

        .item {
            padding: 5px;
            margin: 5px;
            background-color: #f0f0f0;
            cursor: pointer;
        }
    </style>
</body>
</html>

代碼解釋:

在這個(gè)例子中,我們有兩個(gè)列表 list1 和 list2,并使用了 vuedraggable 來使得它們之間能夠?qū)崿F(xiàn)拖拽排序。

pull: 'clone' 表示你可以從 list1 拖動(dòng)項(xiàng)目并將其克隆到目標(biāo)列表(list2)。 put: true 允許你將項(xiàng)目放入目標(biāo)列表。

pull: false 表示不允許從 list2 拖動(dòng)項(xiàng)目到 list1

常用屬性和事件

  • v-model:用于雙向綁定拖拽的數(shù)據(jù)。

  • group:指定拖拽的組,支持 namepullput 屬性。

    • name: 同一組的列表可以相互拖拽。
    • pull: 定義該列表是否可以拖動(dòng)元素到其它列表(clone 代表克隆元素)。
    • put: 定義該列表是否允許接收元素。
  • animation:設(shè)置拖拽時(shí)的動(dòng)畫效果,單位為毫秒。

  • disabled:禁用拖拽功能。

  • ghostClass:設(shè)置拖拽過程中元素的 CSS 類。

事件:

  • @start:拖動(dòng)開始時(shí)觸發(fā)。
  • @end:拖動(dòng)結(jié)束時(shí)觸發(fā)。
  • @change:拖動(dòng)排序完成時(shí)觸發(fā)。

到此這篇關(guān)于vue使用vuedraggable對(duì)列表進(jìn)行拖拽排序的文章就介紹到這了,更多相關(guān)vue vuedraggable列表拖拽排序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • VUE中的v-if與v-show區(qū)別介紹

    VUE中的v-if與v-show區(qū)別介紹

    這篇文章介紹了VUE中v-if與v-show的區(qū)別,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-03-03
  • Vue混入與插件的使用介紹

    Vue混入與插件的使用介紹

    這篇文章主要介紹了Vue混入與插件的使用,mixins(混入),官方的描述是一種分發(fā) Vue 組件中可復(fù)用功能的非常靈活的方式,mixins是一個(gè)js對(duì)象,它可以包含我們組件中script項(xiàng)中的任意功能選項(xiàng),如data、components、methods 、created、computed等等
    2022-09-09
  • vue3模塊創(chuàng)建runtime-dom源碼解析

    vue3模塊創(chuàng)建runtime-dom源碼解析

    這篇文章主要為大家介紹了vue3模塊創(chuàng)建runtime-dom源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • vue雙向綁定及觀察者模式詳解

    vue雙向綁定及觀察者模式詳解

    這篇文章主要介紹了vue雙向綁定及觀察者模式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • vue中如何給el-table-column添加指定列的點(diǎn)擊事件

    vue中如何給el-table-column添加指定列的點(diǎn)擊事件

    elementui中提供了點(diǎn)擊行處理事件,下面這篇文章主要給大家介紹了關(guān)于vue中如何給el-table-column添加指定列的點(diǎn)擊事件,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-11-11
  • Vue 子組件更新props中的屬性值問題

    Vue 子組件更新props中的屬性值問題

    這篇文章主要介紹了Vue 子組件更新props中的屬性值問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • 教你用Vue基礎(chǔ)語法來寫一個(gè)五子棋小游戲

    教你用Vue基礎(chǔ)語法來寫一個(gè)五子棋小游戲

    在布局上,五子棋相比那些目標(biāo)是隨機(jī)運(yùn)動(dòng)的游戲,實(shí)現(xiàn)起來相對(duì)簡單許多,思路也很清晰,下面這篇文章主要給大家介紹了關(guān)于用Vue基礎(chǔ)語法來寫一個(gè)五子棋小游戲的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • 通過html文件來使用Vue的單文件組件形式詳解

    通過html文件來使用Vue的單文件組件形式詳解

    這篇文章主要介紹了通過html文件來使用Vue的單文件組件形式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • Vite結(jié)合Vue刪除指定環(huán)境的console.log問題

    Vite結(jié)合Vue刪除指定環(huán)境的console.log問題

    這篇文章主要介紹了Vite結(jié)合Vue刪除指定環(huán)境的console.log問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Vue的hover/click事件如何動(dòng)態(tài)改變顏色和背景色

    Vue的hover/click事件如何動(dòng)態(tài)改變顏色和背景色

    這篇文章主要介紹了Vue的hover/click事件如何動(dòng)態(tài)改變顏色和背景色問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11

最新評(píng)論

上高县| 阳朔县| 壤塘县| 金溪县| 电白县| 民县| 南宁市| 从江县| 民勤县| 平罗县| 桑日县| 临潭县| 和静县| 万盛区| 平顶山市| 从化市| 诏安县| 黑山县| 阿克苏市| 达州市| 阳东县| 彭泽县| 二连浩特市| 慈利县| 化德县| 称多县| 徐州市| 尖扎县| 宝应县| 洪雅县| 顺昌县| 夹江县| 东乌珠穆沁旗| 沽源县| 营山县| 大同县| 潮州市| 民勤县| 三河市| 乌兰察布市| 忻城县|