国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

尤雨溪都在推薦的 Vue 拖拽庫!

開發(fā) 前端
Sortablejs 是一個非常流行的拖拽庫,不過這個庫的 Vue 3 版本已經(jīng)三年沒更新了,可以說是已經(jīng)跟 Vue 3 嚴重脫節(jié),所以誕生了這個項目,這個組件是基于 Sortablejs 的。

最近看到尤雨溪推薦了一個基于 Vue 的拖拽庫:VueDraggablePlus,本文就來看看這個拖拽庫有什么特別之處!

概念

Sortablejs 是一個非常流行的拖拽庫,不過這個庫的 Vue 3 版本已經(jīng)三年沒更新了,可以說是已經(jīng)跟 Vue 3 嚴重脫節(jié),所以誕生了這個項目,這個組件是基于 Sortablejs 的。

在 Sortablejs 官方以往的 Vue 組件中,都是通過使用組件作為列表的直接子元素來實現(xiàn)拖拽列表,當使用一些組件庫時,如果組件庫中沒有提供列表根元素的插槽,就很難實現(xiàn)拖拽列表,vue-draggable-plus 完美解決了這個問題,它可以讓你在任何元素上使用拖拽列表,可以使用指定元素的選擇器,來獲取到列表根元素,然后將列表根元素作為 Sortablejs 的 container。

VueDraggablePlus 是一個支持 Vue2 和 Vue3 的拖拽庫,它具有以下特性:

  • 功能齊全:全面繼承 Sortable.js 的所有功能。
  • 無縫遷移:適用于 Vue 3 和 Vue2。
  • 靈活使用:支持組件、指令、函數(shù)式調(diào)用,總有一款是您喜歡的。
  • 類型強:用 TypeScript 編寫,帶有完整的 TS 文檔。
  • 雙向綁定:支持 v-model 雙向綁定。
  • 自定義容器:將指定容器作為拖拽容器。

使用

在使用 之前,需要使用以下 npm 命令進行安裝:

npm install vue-draggable-plus

VueDraggablePlus 支持通過組件、指令、Hooks方式使用:

  • 組件方式:
<template>
    <VueDraggable ref="el" v-model="list">
      <div v-for="item in list" :key="item.id">
        {{ item.name }}
      </div>
    </VueDraggable>
</template>

<script setup lang="ts">
import { ref } from 'vue'
import { VueDraggable } from 'vue-draggable-plus'
const list = ref([
  {
    name: 'Joao',
    id: 1
  },
  {
    name: 'Jean',
    id: 2
  },
  {
    name: 'Johanna',
    id: 3
  },
  {
    name: 'Juan',
    id: 4
  }
])
</script>
  • Hooks 方式:
<template>
    <div
      ref="el"
    >
      <div
        v-for="item in list"
        :key="item.id"
      >
        {{ item.name }}
      </div>
    </div>
</template>

<script setup lang="ts">
import { ref } from 'vue'
import { useDraggable, type UseDraggableReturn } from 'vue-draggable-plus'

const el = ref()

const list = ref([
  {
    name: 'Joao',
    id: 1
  },
  {
    name: 'Jean',
    id: 2
  },
  {
    name: 'Johanna',
    id: 3
  },
  {
    name: 'Juan',
    id: 4
  }
])
// 返回值是一個對象,包含了一些方法,比如 start、destroy、pause 等
const draggable = useDraggable<UseDraggableReturn>(el, list, {
  animation: 150,
  onStart() {
    console.log('start')
  },
  onUpdate() {
    console.log('update')
  }
})
</script>
  • 指令方式:
<template>
    <div
      v-draggable="[
        list,
        {
          animation: 150,
        }
      ]"
    >
      <div
        v-for="item in list"
        :key="item.id"
      >
        {{ item.name }}
      </div>
    </div>
</template>

<script setup lang="ts">
import { ref } from 'vue'
import { vDraggable } from 'vue-draggable-plus'
const list = ref([
  {
    name: 'Joao',
    id: 1
  },
  {
    name: 'Jean',
    id: 2
  },
  {
    name: 'Johanna',
    id: 3
  },
  {
    name: 'Juan',
    id: 4
  }
])

function onStart() {
  console.log('start')
}

function onUpdate() {
  console.log('update')
}
</script>

VueDraggablePlus 提供非常多的 API:

參數(shù)

說明

類型

默認值

animation

拖動時顯示動畫

Number

0

chosenClass

被選中項的 css 類名

String

'sortable-chosen'

delay

選中拖拽延時

Number

0

delayOnTouchOnly

touch 事件延遲

Number

0

direction

拖拽方向,默認自動判斷

'vertical'\

'horizontal'

disabled

是否禁止拖拽

Boolean

false

dragClass

拖拽項類名

String

'sortable-drag'

draggable

指定元素內(nèi)的哪些項目應該是可拖動的

String

-

emptyInsertThreshold

拖動時鼠標必須與空可排序項的距離(以像素為單位),以便將拖動元素插入到該可排序項中, 設置為0禁用此功能。

Number

5

easing

簡化動畫。

Easing

-

fallbackClass

當使用forceFallback的時候,被復制的dom的css類名

String

sortable-fallback

fallbackOnBody

將cloned DOM 元素掛到body元素上。

Boolean

false

fallbackTolerance

以像素為單位指定鼠標在被視為拖動之前應該移動多遠。

Number

0

filter

不需要進行拖動的元素

String

-

forceFallback

忽略 HTML5拖拽行為,強制回退

Boolean

false

ghostClass

drop placeholder的css類名

String

'sortable-ghost'

group

要將元素從一個列表拖到另一個列表中,兩個列表必須具有相同的group 值。您還可以定義列表是否可以被移出、或者克隆以及接收其他列表元素。詳情查閱上方TS類型定義

Group

-

handle

設置可拖拽句柄的css類名,如果不設置,默認對目標元素的子列表操作進行拖拽

String

-

invertSwap

如果設置為 true,將始終使用反向交換區(qū)

Boolean

false

invertedSwapThreshold

反向交換閾值,默認情況下將設置為swapThreshold 值

Number

-

preventOnFilter

觸發(fā)filter時調(diào)用event.preventDefault()

Boolean

true

removeCloneOnHide

刪除不顯示的克隆元素,而不是僅僅隱藏它

Boolean

true

sort

定義列表單元是否可以在列表容器內(nèi)進行拖拽排序

Boolean

true

swapThreshold

交換區(qū)的閾值

Number

1

touchStartThreshold

在取消延遲拖動事件之前點應該移動多少像素

Number

1

setData

傳遞一個函數(shù),函數(shù)的第一個參數(shù)為DataTransfer類型,第二個參數(shù)為HTMLElement 類型

Function


scroll

是否啟用滾動

Boolean\

HTMLElement

scrollFn

自定義滾動

ScrollFn

-

scrollSensitivity

鼠標必須離邊緣多近才能開始滾動,單位 px

Number

-

scrollSpeed

滾動速度(ms/px)

number

-

bubbleScroll

將自動滾動應用于所有父元素,以便更輕松地移動

Boolean

true

onChoose

元素被選中

((event: SortableEvent) => void)

-

onUnchoose

元素取消選中

((event: SortableEvent) => void)

-

onStart

元素開始拖拽

((event: SortableEvent) => void)

-

onEnd

元素取消拖拽

((event: SortableEvent) => void)

-

onAdd

元素從一個列表拖拽到另一個列表

((event: SortableEvent) => void)

-

onUpdate

元素順序更新時觸發(fā)

((event: SortableEvent) => void)

-

onSort

列表的任何更改都會觸發(fā)

((event: SortableEvent) => void)

-

onRemove

元素從列表中移除進入另一個列表

((event: SortableEvent) => void)

-

onFilter

試圖拖拽一個filtered的元素

((event: SortableEvent) => void)

-

onMove

拖拽移動的時候觸發(fā)

((event: MoveEvent,originalEvent: Event) => void)

-

onClone

克隆一個元素時觸發(fā)

((event: SortableEvent) => void)

-

onChange

拖拽元素改變位置時觸發(fā)

((event: SortableEvent) => void)

-

小結(jié)

Github:https://github.com/Alfred-Skyblue/vue-draggable-plus。

責任編輯:姜華 來源: 前端充電寶
相關推薦

2024-03-06 07:28:23

Vue前端開發(fā)Vapor 模式

2025-05-06 13:44:17

Vue前端人工智能

2025-05-06 03:30:00

AIVueVite

2025-06-03 08:49:42

2025-12-01 06:15:00

AI UIVue前端

2023-12-20 15:41:46

VueViteVue 3

2025-06-10 08:52:14

2023-07-26 08:34:40

VueReact

2025-09-03 09:03:22

2025-10-17 07:10:00

2025-12-12 13:00:00

VueVue3流式渲染

2024-10-09 14:07:05

2025-05-23 09:21:10

VueDOM前端

2022-01-26 11:00:59

尤雨溪Vue漏洞

2023-10-06 09:43:13

2025-08-22 09:47:44

2025-10-29 01:00:00

2025-09-29 00:00:00

2025-06-03 10:05:01

ViteVue 3.6前端

2025-09-15 06:05:00

Vue3插件前端
點贊
收藏

51CTO技術棧公眾號

2024国产精品视频| 国产精品乱码视频| 国产高清亚洲| 欧美乱妇高清无乱码| 成人免费看片39| 久久66热这里只有精品| 国产精品一区在线观看你懂的| 污污视频网站免费观看| 欧美午夜久久久| 自拍网站在线观看| 国产99久久精品一区二区| 在线欧美亚洲| 日本a视频在线观看| 精品久久久在线观看| 美女搞黄视频在线观看| 日本精品久久久| 毛片av中文字幕一区二区| 九色丨porny丨| 欧美精品一区二区三区四区| 亚洲精选av| 免费看国产精品一二区视频| 久久久久国产精品免费免费搜索| 九九在线视频| 久久综合色影院| 亚洲大胆av| 亚洲综合欧美激情| 亚洲国产精品电影| 欧美电影《轻佻寡妇》| 缅甸午夜性猛交xxxx| 欧美午夜电影网| 日韩欧美中文字幕在线视频| 欧美日本韩国国产| 一个色在线综合| 日韩视频网站在线观看| 7777奇米亚洲综合久久| 国产亚洲精品久| 精品日韩av| 成人亚洲激情网| xnxx国产精品| 色网在线观看| 成人精品在线视频| 色yeye香蕉凹凸一区二区av| 欧美极品在线观看| 麻豆亚洲一区| 性色一区二区| 亚欧洲精品在线视频免费观看| 久久婷婷综合激情| 亚洲成a人片777777久久| 亚洲美女av在线| 色婷婷狠狠综合| 国产婷婷视频在线| 欧美影院久久久| 成人自拍视频在线| 成人日日夜夜| 亚洲va久久久噜噜噜久久天堂| 久久久久成人黄色影片| 成人福利视频| 美脚丝袜一区二区三区在线观看| 亚洲一区二区三区国产| 日本伊人久久| 国产欧美日韩小视频| 精品久久久久99| 亚洲一级电影| 香蒸焦蕉伊在线| 国产成人拍精品视频午夜网站| 久久众筹精品私拍模特| 国产另类xxxxhd高清| 亚洲欧美国产一区二区| 91精品在线观看入口| 精品999日本| 秋霞av在线| 国产精品自产拍在线观| 亚洲黄色片在线观看| 琪琪久久久久日韩精品| 久久综合久久色| 久久久精品在线| 成人毛片视频在线观看| 天天免费亚洲黑人免费| 免费观看中文字幕| 欧美成人艳星乳罩| 国产日韩亚洲| 老司机午夜在线视频| 亚洲一区久久久| 亚洲乱码精品一二三四区日韩在线| 三级欧美日韩| 北条麻妃视频在线| 久久免费福利视频| 国产精品美女久久久久aⅴ| 91蜜桃臀久久一区二区| 男人舔女人下面高潮视频| 欧美精品中文字幕一区| 久久久精品免费网站| 伊人www22综合色| 欧美精品性生活| 97色在线播放视频| 亚洲午夜激情网页| 红桃视频亚洲| 青草视频在线免费直播 | 日韩一级片网站| 日韩高清在线观看| 波多野结衣中文在线| aa成人免费视频| 成人三级在线| 正在播放亚洲1区| 久久精品欧美日韩| 日韩欧美另类中文字幕| 拔插拔插海外华人免费| 成人性做爰aaa片免费看不忠| 美国成人av| 精品亚洲一区二区三区在线观看 | 国产麻豆精品在线| 美女100%一区| 日本一本二本在线观看| 45www国产精品网站| 精品国产31久久久久久| 在线播放亚洲| 波多野结衣视频一区二区| 欧美亚洲国产成人| 国产精品视频男人的天堂| 欧美日韩国产综合草草| 久久se精品一区精品二区| 欧美专区一区| 神马电影在线观看| 中文字幕剧情在线观看一区| 九九热在线精品视频| 亚洲成av人**亚洲成av**| 老司机免费视频久久| 电影一区中文字幕| 新欧美整片sss第一页| 日本欧洲国产一区二区| 欧美成人午夜激情在线| 色婷婷久久一区二区三区麻豆| 激情偷乱视频一区二区三区| 日韩av字幕| 欧美aaaaaaa| 最近中文字幕2019第二页视频| 国产精品二区在线观看| www.亚洲天堂| 欧美性猛交xxxxxx富婆| av成人动漫在线观看| 91av精品| 日本精品另类| 欧美一区二区三区少妇| wwwwww欧美| 亚洲精品日韩激情在线电影| 一区二区三区视频免费在线观看| 亚洲高清免费一级二级三级| 免费av成人在线| 欧美日韩水蜜桃| 色综合天天色| 蝌蚪视频在线播放| 99999精品视频| 国产精品视频免费一区| 久久6精品影院| 欧美卡1卡2卡| 中文字幕在线不卡国产视频| 丝袜a∨在线一区二区三区不卡| 精品嫩草影院| 漫画在线观看av| 欧美精品a∨在线观看不卡 | 欧美国产亚洲一区| 成人羞羞视频免费| 久久久久久成人精品| 欧美不卡在线视频| 亚洲最新在线观看| 懂色中文一区二区在线播放| 欧美一区免费| 999在线精品| 僵尸再翻生在线观看| 青青草在线免费视频| aⅴ在线免费观看| 色999五月色| 91在线免费视频| 欧美极品少妇全裸体| 日韩精品在线电影| 欧美人伦禁忌dvd放荡欲情| 亚洲嫩草精品久久| 91麻豆国产福利精品| 精品影视av免费| 国产精品社区| 欧美成人中文| 台湾色综合娱乐中文网| 91看片一区| 伦理在线一区| 91涩漫在线观看| 永久在线免费观看| 高清中文字幕在线| 亚洲一区在线不卡| 精品无码国模私拍视频| 一本色道久久综合亚洲二区三区| 国产激情一区二区三区在线观看| 欧美主播福利视频| 久久久亚洲影院你懂的| 久久五月天色综合| 中文字幕日韩视频| 亚洲日本中文字幕| 亚洲丝袜一区在线| 亚洲毛片在线看| 亚洲美女久久久| 亚洲欧洲在线看|