Vue でドラッグ アンド ドロップと並べ替え機能を実装する方法

Vue にドラッグ アンド ドロップと並べ替え機能を実装する

Web アプリケーションでは、ドラッグ アンド ドロップおよび並べ替え機能の実装は、特に管理インターフェイス、タスク リスト、グラフィカル ユーザー インターフェイスにおいて非常に一般的な要件です。人気の JavaScript フレームワークとして、Vue.js は、ドラッグ アンド ドロップや並べ替え機能の実装を簡素化するための多くのツールとライブラリを提供します。この記事では、Vue を使用して、シンプルかつ強力なドラッグ アンド ドロップと並べ替え機能を実装する方法を紹介します。

ここに画像の説明を挿入します

準備

開始する前に、Vue CLI がインストールされており、Vue プロジェクトが作成されていることを確認してください。Vue CLI をまだインストールしていない場合は、次のコマンドを使用してインストールします。

npm install -g @vue/cli

その後、Vue CLI を使用して新しい Vue プロジェクトを作成できます。

vue create my-drag-and-drop-app

プロジェクト ディレクトリを入力します。

cd my-drag-and-drop-app

Vue-Draggable ライブラリの使用

Vue でドラッグ アンド ソート機能を実装する場合に非常に便利なライブラリは ですvue-draggableこのライブラリを使用すると、ドラッグ、並べ替え、および複雑な操作を簡単に実装できます。まずインストールしましょう:

npm install vuedraggable

並べ替え可能なリストを作成する

まず、ユーザーがリスト内の項目をドラッグして並べ替えできるように、並べ替え可能なリストを作成しましょう。Vue コンポーネント ファイル (通常は.vueファイル) を開き、次のように変更します。

<template>
  <div>
    <h2>任务列表</h2>
    <draggable v-model="tasks" :options="dragOptions">
      <div
        v-for="(task, index) in tasks"
        :key="task.id"
        class="task"
      >
        {
   
   { task.text }}
      </div>
    </draggable>
  </div>
</template>

<script>
import draggable from "vuedraggable";

export default {
  components: {
    draggable,
  },
  data() {
    return {
      tasks: [
        { id: 1, text: "任务 1" },
        { id: 2, text: "任务 2" },
        { id: 3, text: "任务 3" },
        { id: 4, text: "任务 4" },
      ],
      dragOptions: {
        animation: 200,
        group: "tasks",
      },
    };
  },
};
</script>

<style>
.task {
  padding: 10px;
  margin: 5px;
  border: 1px solid #ccc;
  background-color: #f0f0f0;
  cursor: grab;
}
</style>

vuedraggable上記のコードでは、コンポーネントをインポートし、それをテンプレートで使用して並べ替え可能なタスク リストを作成しました。このディレクティブは、並べ替えたいデータである配列v-modelにデータをバインドします。アニメーションやグループなどのドラッグ動作を構成するためのオプションが含まれています。tasksdragOptions

新しいタスクを追加する

次に、ユーザーが新しいタスクを入力してタスク リストに追加できる機能を追加しましょう。これを実現するために、Vue の双方向データ バインディングを使用します。

<template>
  <div>
    <h2>任务列表</h2>
    <input v-model="newTask" @keyup.enter="addTask" placeholder="添加任务" />
    <draggable v-model="tasks" :options="dragOptions">
      <div
        v-for="(task, index) in tasks"
        :key="task.id"
        class="task"
      >
        {
   
   { task.text }}
      </div>
    </draggable>
  </div>
</template>

<script>
import draggable from "vuedraggable";

export default {
  components: {
    draggable,
  },
  data() {
    return {
      tasks: [
        { id: 1, text: "任务 1" },
        { id: 2, text: "任务 2" },
        { id: 3, text: "任务 3" },
        { id: 4, text: "任务 4" },
      ],
      newTask: "",
      dragOptions: {
        animation: 200,
        group: "tasks",
      },
    };
  },
  methods: {
    addTask() {
      if (this.newTask.trim() === "") return;
      const newId = this.tasks.length + 1;
      this.tasks.push({ id: newId, text: this.newTask });
      this.newTask = "";
    },
  },
};
</script>

上記のコードでは、

ユーザーが新しいタスクを入力できる入力ボックスを追加しました。v-modelこの命令は、入力ボックスの値をnewTaskデータ属性にバインドし、 Enter キー イベントをリッスンし、@keyup.enterユーザーが Enter キーを押したときにaddTask新しいタスクを追加するメソッドをトリガーします。

完全なドラッグ アンド ドロップおよび並べ替え機能

これで、ドラッグ アンド ドロップ機能を備えたタスク リストが完成しました。ブラウザーで Vue アプリケーションを実行し、これらの機能をテストできます。次のコマンドを使用して Vue 開発サーバーを起動します。

npm run serve

次に、 にアクセスしてhttp://localhost:8080アプリケーションを表示します。

要約する

Vue でのドラッグ アンド ドロップや並べ替え機能の実装は非常に簡単で、ライブラリを使用するとvuedraggable、並べ替え可能なリストや対話型インターフェイスを簡単に作成できます。実際には、特定のニーズに合わせてこれらの機能をさらに拡張およびカスタマイズできます。この記事が役に立ち、Vue でドラッグ アンド ドロップと並べ替え機能を実装する方法をより深く理解できることを願っています。コーディングを楽しんでください!

おすすめ

転載: blog.csdn.net/2301_77835649/article/details/133579859