莫方教程网

专业程序员编程教程与实战案例分享

Vue Fluid DnD:下一代 Vue3 列表拖拽库

家好,很高兴又见面了,我是"高级前端?进阶?",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发,您的支持是我不断创作的动力。

什么是 Vue Fluid DnD

A fluid, smooth and versatil drag and drop library for lists on Vue3. It's a lightweight tool ~5 Kb (gzip) with no depenencies.

Vue Fluid DnD 是一个流畅、平滑且多功能的 Vue3 列表拖放库,其是一个轻量级工具,gzip 后体积大约 5 Kb ,没有任何依赖项。

Vue Fluid DnD 的典型特征包括:

  • ? 完全可定制
  • ? 零依赖
  • ? 支持使用水平??和垂直列表??
  • ? 支持鼠标和触摸,包括:手机、平板电脑等支持
  • ? 支持很好的文档和示例
  • ? 经过全面测试,可靠

如何使用 Vue Fluid DnD

首先,使用首选的包管理器安装 Vue Fluid DnD:

// 使用 npm
npm i vue-fluid-dnd
// 使用 yarn
yarn add vue-fluid-dnd
// 使用 pnpm
pnpm i vue-fluid-dnd

接着,开发者可以使用 provide/inject 设置可组合项(useDragAndDrop),以便整个应用程序可以使用:

import {createApp} from "vue";
import App from './App.vue';
import {useDragAndDrop} from "vue-fluid-dnd";
const app = createApp(App);
app.provide('useDragAndDrop', useDragAndDrop);
app.mount('#app');

当然,开发者也可以选择导入 composable,即 useDragAndDrop:

<script>
  import {useDragAndDrop} from 'vue3-fluid-dnd';
</script>

下面示例使用 Vue Fluid DnD 对水平列表进行排序。首先创建一个数字列表,并添加具有 horizontal 属性的 direction:

<script setup lang="ts">
    const list = ref(1, 2, 3, 4, 5]);
    const {parent} = useDragAndDrop(list, { direction: "horizontal" });
</script>

接着使用 useDragAndDrop 全局注册:

<template>
  <div ref="parent" class="number-list">
    <div class="number" v-for="(element, index) in list" :index="index">
      {{ element }}
    </div>
  </div>
</template>
<style>
.number-list {
  display: flex;
  flex-direction: row;
}
</style>

参考资料

https://github.com/carlosjorger/vue-fluid-dnd?tab=readme-ov-file

https://vue-fluid-dnd.netlify.app/guides/horizontallist/

https://madewithvuejs.com/vue-fluid-dnd

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言