Vueはカスタムツリーコンポーネントを再帰的に実装します

Vueはカスタムツリーコンポーネントを再帰的に実装します

この記事では、カスタムツリーコンポーネントを再帰的に実装するVueの具体的なコードを参考までに共有します。具体的な内容は次のとおりです。

1. tree/index.vue 内:

<テンプレート>
  <div>
      <ul>
          <item :model='データ'></item>
      </ul>
  </div>
</テンプレート>
 
<スクリプト>
'./item' からアイテムをインポートします
エクスポートデフォルト{
    コンポーネント:{
        アイテム
    },
    データ(){
        戻る {
            データ:{
                タイトル:"レベル 1",
                子供たち:[
                    {
                        タイトル:"レベル 1-1",
                        子供たち:[
                            {
                                タイトル:"レベル 3 1-1-1",
                                子供たち:[
                                    {
                                        タイトル:「レベル4 1-1-1-1」、
                                        子供たち:[
                                            {
                                                タイトル:"レベル 5 1-1-1-1-1"
                                            }
                                        ]
                                    }
                                ]
                            }
                        ]
                    },{
                        タイトル:「レベル1-2」、
                        子供たち:[
                            {
                                タイトル:「レベル3 1-2-1」
                            }
                        ]
                    }
                ]
            }
        }
    }
}
</スクリプト>

2. item.vue コンポーネント:

<テンプレート>
  <li>
      <div @click="トグル">
          {{モデル.タイトル}}
          <span v-if="isFolder">[{{open?'-':'+'}}]</span>
      </div>
      <ul v-show="開く" v-if="isFolder">
          <item v-for="(child,index) in model.children" :model='child' :key='index'></item>
      </ul>
  </li>
</テンプレート>
 
<スクリプト>
エクスポートデフォルト{
    名前:'アイテム',
    小道具:{
        モデル:{
            タイプ:オブジェクト、
            必須:true
        }
    },
    データ(){
        戻る {
            開く:false
        }
    },
    計算:{
        フォルダ(){
           this.model.children を返す && this.model.children.length>0
        }
    },
    方法:{
        トグル(){
            if (this.isFolder) this.open =!this.open
        }
    }
}
</スクリプト>

3. 任意のコンポーネントでの使用:

<テンプレート>
  <div class="index">
      <木></木>
  </div>
</テンプレート>
 
<スクリプト>
    「@/components/tree」から Tree をインポートします。
    コンポーネント:{
        木
    }
</スクリプト>

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Vueのツリーコンポーネントを実装する方法
  • vueでvant TreeSelect分類選択コンポーネント操作を使用する
  • Vue は zTree プラグインを使用してツリーコンポーネント操作の例をカプセル化します。
  • Vue 再帰コンポーネント + Vuex 開発ツリーコンポーネント ツリー - 再帰コンポーネントのシンプルな実装
  • Vueコンポーネントツリーはツリーメニューを実装します
  • Vue2 コンポーネントツリーは無制限レベルのツリーメニューを実装します
  • Vue.js コンポーネントツリーは、州と都市間の多階層の連携を実現します
  • Vue.js コンポーネント ツリーは無制限レベルのツリー メニューを実装します

<<:  LinuxスレッドのPID(TID、LWP)を取得するいくつかの方法の詳細な説明

>>:  MySQL外部キーの3つの関係例の詳細な説明

推薦する

ウェブサイトはグレー表示されています。画像を含む互換コードはすべてのブラウザをサポートしています

通常、国喪の日、大地震の日、清明節には、ウェブサイト全体を灰色にして、故人への哀悼の意を表します。そ...

VMware ESXi のインストールと使用記録(ダウンロード付き)

目次1. ESXiをインストールする2. ESXiをセットアップする3. ESXiを起動するESXi...

ホストサービスにアクセスするDockerでのサービスの実装

目次1. シナリオ2. 解決策3. 結論4. 参考文献1. シナリオ日常の開発およびテスト作業には ...

HTML ドラッグ アンド ドロップ機能の実装コード

Vueベースこの機能の核となるアイデアは、JavaScript コードを通じてページ上のノードの左余...

vuex データの永続化のための 2 つの実装ソリューション

目次ビジネス要件:解決策 1: vuex-persistedstate解決策2: vuex-pers...

MySQL で戻り値ありと戻り値なしのストアド プロシージャを書く 2 つの方法

プロセス1: 戻り値あり: proc_addNum が存在する場合はプロシージャを削除します。 プロ...

Vue プロジェクトの最初の画面のパフォーマンス最適化コンポーネントの実践ガイド

目次Vue ファースト スクリーン パフォーマンス最適化コンポーネント説明するインターセクションオブ...

React + Threejs + Swiper パノラマ効果を実現するための完全なコード

パノラマビュー効果を見てみましょう: 住所を表示スクリーンショット: 体験してみると、周囲の環境がぐ...

Dockerはローカルイメージをパッケージ化し、他のマシンに復元します

1. docker imagesを使用して、このマシン上のすべてのイメージファイルを表示します。 2...

ポートマッピング後に Docker コンテナが突然接続に失敗する問題のトラブルシューティング プロセス

1. 背景通常、外部サービスを提供する必要がある Docker コンテナの場合、起動時に -p コマ...

js キャンバスはランダムなパーティクル効果を実現します

この記事の例では、参考のためにjsキャンバスランダムパーティクルエフェクトの具体的なコードを共有して...

複数の無関係なテーブルからデータをクエリし、MySQL でページングする方法

MySQL 複数の無関係なテーブルクエリデータとページング機能要件主キーと外部キーの関連付けがない ...

Linux プラットフォームの MySQL でリモート ログインを有効にする

開発中、MySQL へのリモートアクセスでよく問題に遭遇します。そのたびに検索する必要があり、面倒に...

MySQLデータベースの数千万件のデータクエリとストレージの詳細な説明

目次百万レベルのデータ処理ソリューションデータストレージ構造設計クエリステートメントの最適化1000...

Docker-compose を使用して GitLab をデプロイする方法

Docker-compose は GitLab をデプロイします1. Dockerをインストールする...