Vue.jsを使用して、要素をドラッグして移動する方法について解説します。Vue.jsでは、ドラッグ&ドロップの操作を行うためのライブラリがいくつか存在しますが、ここでは、その中でも人気のあるvue-draggable
を使用します。
目次
vue-draggableのインストール
まずは、vue-draggable
ライブラリをプロジェクトに追加します。以下のコマンドを実行してインストールしてください。
npm install vuedraggable
vue-draggableの基本的な使い方
vue-draggable
は、Vue.jsにおけるドラッグ&ドロップ操作のためのライブラリです。以下に、基本的な使い方を示します。
<template> <div id="app"> <draggable v-model="list"> <div v-for="item in list" :key="item.name">{{ item.name }}</div> </draggable> </div> </template> <script> import draggable from 'vuedraggable' export default { name: 'App', components: { draggable }, data() { return { list: [ { name: 'item1' }, { name: 'item2' }, { name: 'item3' } ] } } } </script>
vue-draggableを用いた要素の移動
vue-draggable
を用いて、要素をドラッグして移動する方法を詳しく見ていきましょう。
<template> <div id="app"> <draggable v-model="list"> <div v-for="(item, index) in list" :key="item.name"> {{ item.name }} <button @click="moveUp(index)">Up</button> <button @click="moveDown(index)">Down</button> </div> </draggable> </div> </template> <script> import draggable from 'vuedraggable' export default { name: 'App', components: { draggable }, methods: { moveUp(index) { if (index > 0) { const item = this.list[index] this.list.splice(index, 1) this.list.splice(index - 1, 0, item) } }, moveDown(index) { if (index < this.list.length - 1) { const item = this.list[index] this.list.splice(index, 1) this.list.splice(index + 1, 0, item) } } }, data() { return { list: [ { name: 'item1' }, { name: 'item2' }, { name: 'item3' } ] } } } </script>
まとめ
Vue.jsで要素をドラッグして移動する方法について解説しました。vue-draggable
ライブラリを使用することで、ドラッグ&ドロップ操作を簡単に実装することができます。さまざまなUIを作成する際に、ぜひ活用してみてください。