目次
Vue Draggableの使用(ほとんどの場合に推奨)
1. Vue Draggableをインストールします
2。基本的な使用法
重要なオプション:
ネイティブHTML5のドラッグアンドドロップを使用する(カスタム動作用)
例:ネイティブイベントを備えたDraggableリスト
それがどのように機能するか:
どのアプローチを選択しますか?
ホームページ ウェブフロントエンド Vue.js Vueでドラッグアンドドロップインターフェースを作成する方法

Vueでドラッグアンドドロップインターフェースを作成する方法

Aug 29, 2025 am 03:18 AM

Vue Draggableを使用して、ドラッグアンドドロップの並べ替えをすばやく実装し、ほとんどのプロジェクトに適した双方向のバインディング、アニメーション、クロスコンテナードラッグをサポートします。 2。ネイティブHTML5ドラッグアンドドロップAPIを使用して、サードパーティライブラリに依存せずに動作を完全にカスタマイズしますが、手動のステータス管理が必要です。プロジェクトのニーズに応じて適切なソリューションを選択する必要があり、ほとんどの場合、Vue Draggableが推奨され、特別なニーズに合わせて軽量またはオプションのネイティブ実装を選択できます。

Vueでドラッグアンドドロップインターフェースを作成する方法

VUEでドラッグアンドドロップインターフェイスを作成することは、特にVue Draggable (Surtable.jsに基づく)などのライブラリの助けを借りて、またはNative HTML5 Drag and Drop APIを使用して、簡単です。以下は、人気のあるライブラリとネイティブイベントを備えた建物を使用する2つの実用的なアプローチです。そのため、ニーズに基づいて選択できます。

Vueでドラッグアンドドロップインターフェースを作成する方法

Vue Draggableの使用(ほとんどの場合に推奨)

Vue Draggable 、sortable.jsをラップするVueコンポーネントであり、最小限のコードでsortableおよびDraggableリストを簡単に作成できます。

1. Vue Draggableをインストールします

VUE 3:

Vueでドラッグアンドドロップインターフェースを作成する方法
 npmインストールvuedraggable@^4.1.0

注:VUE 3の互換性にバージョン4を使用します。

2。基本的な使用法

コンポーネントとしてvuedraggableインポートして使用します。

Vueでドラッグアンドドロップインターフェースを作成する方法
 <テンプレート>
  <div>
    <h3>ドラッグアンドドロップリスト</h3>
    <ドラッグ可能
      v-model = "items"
      tag = "ul"
      item-key = "id"
      ゴーストクラス=「ゴースト」
      @start = "dragstart"
      @end = "dragend"
    >
      <template #item = "{element}">
        <li> {{element.name}} </li>
      </テンプレート>
    </draggable>
  </div>
</テンプレート>

<スクリプトのセットアップ>
&#39;vue&#39;から{ref}をインポートします。
「vuedraggable」からドラッグ可能なインポート。

//アイテムのリスト
const items = ref([[
  {id:1、name: &#39;item 1&#39;}、
  {id:2、name: &#39;item 2&#39;}、
  {id:3、name: &#39;item 3&#39;}
]);

関数dragstart(){
  console.log( &#39;drag start&#39;);
}

関数dragend(){
  console.log( &#39;drag endded&#39;);
  console.log( &#39;new Order:&#39;、items.value);
}
</script>

<style>
。おばけ {
  不透明度:0.5;
  背景:#c8ebfb;
}
</style>

重要なオプション:

  • v-model :リストと更新を並べ替えてバインドします。
  • tag :ラッパーを特定の要素としてレンダリングします(この場合はul )。
  • item-key :VUE 3のv-forのようなレンダリングに必要です(一意のキーを使用)。
  • ghost-class :ドラッグされたプレースホルダーにクラスを適用します。

この方法は、リスト、グリッド、さらには最小限の労力でドラッグするクロスコンテナーをサポートしています。


ネイティブHTML5のドラッグアンドドロップを使用する(カスタム動作用)

完全に制御したい場合、または外部ライブラリを避けている場合は、ネイティブAPIを使用してください。

例:ネイティブイベントを備えたDraggableリスト

<テンプレート>
  <div>
    <h3>ネイティブドラッグアンドドロップ</h3>
    <ul>
      <li
        v-for = "(item、index)inアイテム」
        :key = "item.id"
        draggable = "true"
        @dragstart = "ondragstart(index)"
        @dragover.prevent = "ondragover($ event、index)"
        @drop = "ondrop(index)"
        @dragend = "ondragend"
        class = "draggable-item"
      >
        {{item.name}}
      </li>
    </ul>
  </div>
</テンプレート>

<スクリプトのセットアップ>
&#39;vue&#39;から{ref}をインポートします。

const items = ref([[
  {id:1、name: &#39;apple&#39;}、
  {id:2、name: &#39;banana&#39;}、
  {id:3、name: &#39;Cherry&#39;}
]);

const draggedindex = ref(null);

function ondragstart(index){
  draggedindex.value = index;
  // Firefoxに必要です
  event.DatatRansfer?.SetData( &#39;Text/Plain&#39;、 &#39;&#39;);
}

function ondragover(event、index){
  const current = draggedindex.value;
  const target = index;

  if(current === null || current ===ターゲット)return;

  //配列を再注文します
  const moveTiTem = items.value.splice(current、1)[0];
  items.value.splice(ターゲット、0、movemitem);

  //インデックスを更新します
  draggedindex.value =ターゲット;
}

function ondrop(index){
  //ドロップを完成させます
  console.log( &#39;indexでドロップ:&#39;、index);
}

function ondragend(){
  draggedindex.value = null;
}
</script>

<style>
.draggable-item {
  パディング:10px;
  マージン:4px 0;
  背景:#f0f0f0;
  カーソル:移動;
}

.draggable-item:Hover {
  背景:#e0e0e0;
}
</style>

それがどのように機能するか:

  • draggable="true"を有効にして要素をドラッグします。
  • @dragstart :ドラッグされているインデックスを記録します。
  • @dragover.prevent :デフォルトがドロップを許可するのを防ぎます(必須)。
  • @drop :ロジックの並べ替えをトリガーします。
  • @dragend :ドラッグ後にクリーンアップします。

これにより、完全に制御できますが、より多くの手動の州管理が必要です。


どのアプローチを選択しますか?

  • 必要に応じてVue Draggableを使用してください

    • 高速開発
    • マルチリストドラッグ
    • アニメーションサポート
    • タッチサポート(モバイル)
  • あなたの場合はネイティブAPIを使用します

    • 依存関係がゼロしたい
    • 高度にカスタマイズされたドラッグ動作が必要です
    • ドラッグアンドドロップがフードの下でどのように機能するかを学んでいます

両方のアプローチはVUE 3でうまく機能します。ほとんどのアプリケーションでは、 vuedraggable時間を節約し、エッジケースを処理します。軽量または非常に特定のニーズのために、ネイティブイベントは完全に実行可能です。

基本的に、プロジェクトの範囲に適したツールを選択します。

以上がVueでドラッグアンドドロップインターフェースを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Stock Market GPT

Stock Market GPT

AIを活用した投資調査により賢明な意思決定を実現

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Vueネイティブを使用してモバイルアプリを作成する方法 Vueネイティブを使用してモバイルアプリを作成する方法 Aug 25, 2025 pm 02:25 PM

Vuenativeを使用してモバイルアプリケーションを作成することは、vue.js構文と反応性を組み合わせた構文を使用して、クロスプラットフォーム開発を実現するための効果的な方法です。 2.最初に開発環境を構成し、node.jsとexpocliをインストールし、コマンドnpxcreate-reacte-native-appmy-vue-app - templatevue-nativeを介してプロジェクトを作成します。 3.プロジェクトディレクトリを入力してnpmstartを実行し、expogoアプリケーションを介してQRコードをスキャンしてモバイルデバイスでプレビューします。 4. .VUEファイルコンポーネント、使用、構造を記述し、小文字のビュー、テキスト、ボタンなどの小文字の反応性コンポーネントの使用に注意してください

VUE 3で反応変数の使用方法 VUE 3で反応変数の使用方法 Sep 01, 2025 am 08:26 AM

ref()を使用して、柔軟な配信を必要とする基本タイプとシナリオを処理します。 Reactive()を使用してオブジェクト状態を管理します。 refは、JSで.Valueでアクセスし、テンプレートで自動的に解放される必要があります。 Reactive()は属性に直接アクセスします。リアクティブの分解は応答性を失い、REFはそうではありません。ネストされたときにrefは自動的に開梱されます。 2つは混合できます。

Webワーカーとは何ですか、そしてそれらはVueでどのように使用できますか? Webワーカーとは何ですか、そしてそれらはVueでどのように使用できますか? Aug 31, 2025 am 07:43 AM

VUEアプリケーションでは、VUEアプリケーションで使用されて、UIの応答性を維持するためのバックグラウンドタスクを実行します。それらは、PostMessage()とOnmessageを通じて通信し、専用と共有の2つのカテゴリに分けられ、ビッグデータ処理やリアルタイムコンピューティングなどのシナリオに適しています。それを使用する場合、ワーカーファイルを作成してコンポーネントにロードし、パス、終了、およびデータ転送の制限に注意を払う必要があります。メモリリークを避けるために、コンポーネントのアンインストールの前にワーカーを終了する必要があります。

サードパーティライブラリをVUEプロジェクトに統合する方法 サードパーティライブラリをVUEプロジェクトに統合する方法 Aug 30, 2025 am 02:53 AM

instrylibraryusnpmoryarn.2.importlocallyincomponents foroccasionaluse.3.useapp.use()forglobalregistration ofpluginsoruilibraries.4.setupauto-importswithunplugin-auto-importandunplugin-vue-componerts forlgeulibrarys.5.enseulibrarys..

ブートストラップやテールワインドCSSなどのCSSフレームワークでVUEの使用方法 ブートストラップやテールワインドCSSなどのCSSフレームワークでVUEの使用方法 Sep 01, 2025 am 08:44 AM

tousebootstrapwithvue、installbootstrapandoptionallybootstrapvuenextforvue-nativeComponents、importcssandjsinmain.js、およびuseclassorcomponentsintemplates.2.tousetailwindcsswithvue、instruing denditiondentendententendententendententententing.

Vue.jsコンポーネントでネイティブDOMイベントを聴く方法は? Vue.jsコンポーネントでネイティブDOMイベントを聴く方法は? Sep 16, 2025 am 08:04 AM

VUE3では、ネイティブDOMイベントは、.Native Modifierを使用せずに、デフォルトでコンポーネントルート要素に直接結合します。コンポーネントが単一の要素である場合、 @clickなどの@eventで直接聞くことができます。複数のノードまたは明示的なコントロールの場合、カスタムイベントを定義し、$ EMITまたはDEFINEEMITSを使用してトリガーして、交差バージョンの互換性と明確なイベントインターフェイスを維持する必要があります。

Vueのプラグインを構築する方法 Vueのプラグインを構築する方法 Sep 03, 2025 am 06:39 AM

VUEプラグインを作成して、アプリインスタンスとオプションの構成を受信するインストールメソッドを含むオブジェクトを定義します。 2。インストール方法では、$ mypropertyなどの$ mypropertyなどのグローバルプロパティを追加できます。 3。App.comPonentを使用して、MyButtonなどのグローバルコンポーネントを登録して、インポートなしでテンプレートで使用できるようにします。 4.自動フォーカスのためのVフォーカスなど、app.directiveを介してグローバル命令を定義します。 5。App.Provideを使用して注射可能なサービスを提供すると、挿入によりサブコンポーネントを取得できます。 6. APIUなどの着信オプションパラメーターをサポートします

Vueでドラッグアンドドロップインターフェースを作成する方法 Vueでドラッグアンドドロップインターフェースを作成する方法 Aug 29, 2025 am 03:18 AM

VuedRaggableを使用して、ドラッグアンドドロップの並べ替えをすばやく実装し、ほとんどのプロジェクトに適した双方向のバインディング、アニメーション、クロスコンテナードラッグをサポートします。 2.ネイティブHTML5ドラッグアンドドロップAPIを使用して、サードパーティライブラリに依存することなく動作を完全にカスタマイズしますが、ステータスの手動管理が必要です。プロジェクトのニーズに応じて適切なソリューションを選択する必要があり、ほとんどの場合VuedRaggableが推奨され、軽量または特別なニーズはオプションでネイティブの実装で実装できます。

See all articles