欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue中全局限制輸入特殊字符方式

    Vue中全局限制輸入特殊字符方式

    這篇文章主要介紹了Vue中全局限制輸入特殊字符方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • vue 驗(yàn)證碼界面實(shí)現(xiàn)點(diǎn)擊后標(biāo)灰并設(shè)置div按鈕不可點(diǎn)擊狀態(tài)

    vue 驗(yàn)證碼界面實(shí)現(xiàn)點(diǎn)擊后標(biāo)灰并設(shè)置div按鈕不可點(diǎn)擊狀態(tài)

    今天小編就為大家分享一篇vue 驗(yàn)證碼界面實(shí)現(xiàn)點(diǎn)擊后標(biāo)灰并設(shè)置div按鈕不可點(diǎn)擊狀態(tài),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • vue3的watch和watchEffect你了解嗎

    vue3的watch和watchEffect你了解嗎

    這篇文章主要為大家詳細(xì)介紹了vue的watch和watchEffect,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • Vue3 獲取當(dāng)前組件實(shí)例及場景分析

    Vue3 獲取當(dāng)前組件實(shí)例及場景分析

    在Vue 3中,getCurrentInstance是一個(gè)用于獲取當(dāng)前組件實(shí)例的重要函數(shù),以下是對(duì)getCurrentInstance的詳細(xì)分析,感興趣的朋友一起看看吧
    2024-12-12
  • Vue加載json文件的方法簡單示例

    Vue加載json文件的方法簡單示例

    這篇文章主要介紹了Vue加載json文件的方法,結(jié)合實(shí)例形式分析了vue.js針對(duì)json文件的加載及數(shù)據(jù)讀取等相關(guān)操作技巧,需要的朋友可以參考下
    2019-01-01
  • 詳談Object.defineProperty 及實(shí)現(xiàn)數(shù)據(jù)雙向綁定

    詳談Object.defineProperty 及實(shí)現(xiàn)數(shù)據(jù)雙向綁定

    這篇文章主要介紹了詳談Object.defineProperty 及實(shí)現(xiàn)數(shù)據(jù)雙向綁定,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • vue與iframe之間的交互方式(一看就會(huì))

    vue與iframe之間的交互方式(一看就會(huì))

    這篇文章主要介紹了vue與iframe之間的交互方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • Vue 3中toRaw和markRaw的使用教程

    Vue 3中toRaw和markRaw的使用教程

    toRaw和markRaw是Vue 3中引入的新API,用于更精細(xì)地控制對(duì)象的代理和響應(yīng)性,它們提供了在需要時(shí)繞過代理或禁用響應(yīng)性的能力,有助于提高性能和更好地與第三方庫進(jìn)行集成,本文給大家介紹Vue 3中toRaw和markRaw的使用,感興趣的朋友一起看看吧
    2023-10-10
  • Vue-element-admin平臺(tái)側(cè)邊欄收縮控制問題

    Vue-element-admin平臺(tái)側(cè)邊欄收縮控制問題

    這篇文章主要介紹了Vue-element-admin平臺(tái)側(cè)邊欄收縮控制問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • vue 中使用print.js導(dǎo)出pdf操作

    vue 中使用print.js導(dǎo)出pdf操作

    這篇文章主要介紹了vue 中使用print.js導(dǎo)出pdf操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11

最新評(píng)論