この記事の例では、3階層メニューを再帰的に実装するVueの具体的なコードを参考までに共有しています。具体的な内容は次のとおりです。 親コンポーネント <テンプレート> <div class="メニューレベルメニューメニューレベルメニュー-enter" v-if="showLevelMenu"> <menu-item class="menu-item" :menuDate="メニューリスト"></menu-item> </div> </テンプレート> サブコンポーネント <テンプレート> <div> <div class="" v-for="(menu, index) in menuDate" :key="index"> // 各メニュー項目 <div class="menu-row" @click="menuSpread(menu)" :class="[{'menu-row-selected': menu.selected && menu.children.length <= 0}]"> <div class="menu-row-left"> <div class="menu-row-left-line" :class="[{'menu-selected': menu.selected && menu.children.length <= 0}]"></div> <i class="iconfont" :class="[menu.menuIcon, {'color-icon': showIconColor(menu)}]"></i> </div> <div class="menu-row-right"> <span :class="[{'font-16': menu.level === '0'}]">{{menu.menuName}}</span> <i class="c" v-if="menu.children.length <= 0"></i> <i class="iconfont icon-liebiaoxiala" v-if="menu.children.length>0 && !menu.selected"></i> <i class="iconfont icon-liebiaoshouqi" v-if="menu.children.length>0 && menu.selected"></i> </div> </div> // メニューを再帰的に表示します <menu-item v-show="menu.selected" v-if="menu.children.length>0" :menuDate="menu.children"></menu-item> </div> </div> </テンプレート> <スクリプト> エクスポートデフォルト{ 小道具: { menuDate: 配列 }, 名前: 'メニュー項目', メソッド: { menuSpread (メニュー) { menu.menuRouter の場合、 this.$router.push(menu.menuRouter); メニューが選択されました = !メニューが選択されました; this.recursion(this.menuDate、メニュー); }, 再帰(すべて、一時){ all.forEach(アイテム => { if (item.menuName !== temp.menuName) { 項目が選択されました = false; this.recursion(item.children, temp); } }); }, showIconColor (メニュー) { show = false とします。 メニューレベル === '0' の場合 { menu.children.forEach(item => { if (item.children.length <= 0 && item.selected) { 表示 = true; } (アイテムの子供の長さ>0)の場合{ アイテム.children.forEach(アイテム => { (項目が選択されている場合){ 表示 = true; } }); } }); } リターンショー; } } }; </スクリプト> レンダリング 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Docker はキューとタスクのスケジューリングを実現するために Laravel アプリケーションをデプロイします
>>: Windows 10 での MySQL 5.7.21 インストーラのインストール グラフィック チュートリアル
CentOS 8 が利用可能になりました! CentOS 8 と RedHat Enterprise...
Yum (フルネームは Yellow dog Updater, Modified) は、Fedora...
123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...
元の構成: http { ...... limit_conn_zone $binary_remote...
MySQL マルチテーブルクエリワークシートを追加する -- ユーザーテーブル (ユーザー) テーブ...
JS のクラスの定義や継承は本当に多様なので、別のノートブックを開いて記録しておきます。意味オブジェ...
水平方向では、セルの配置を左、中央、右に設定できます。基本的な構文<TD ALIGN=&quo...
AI 画像の切り取りは PS と連携する必要があります。まず、スライスするレイヤーを選択し、それを...
目次1. イベントとは何ですか? 2. 「イベント」機能を有効にする1. 機能が有効になっているかど...
時間差関数 TIMESTAMPDIFF と DATEDIFF の使用SQL ステートメント、特にスト...
1. ユーザーを作成して承認するMySQL 8.0 では、ユーザーの作成と認証が以前とは異なります...
MySQL 8 の公式バージョン 8.0.11 がリリースされました。公式発表によると、MySQL ...
IDEA は Java で最も一般的に使用されている開発ツールであり、Docker は最も人気のある...
最近、問題のある新しい SQL が本番データベースに入力される数を最小限に抑えるために、開発仕様を整...
ご存知のとおり、binlog ログは MySQL データベースにとって非常に重要です。万が一、データ...