この記事の例では、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 インストーラのインストール グラフィック チュートリアル
目次1. プロジェクトフォルダ構造1. アセットフォルダ2. 図書館3. ローカル設定(ローカル) ...
1. 継続的デリバリーとは何かソフトウェア製品の出力プロセスは、ソフトウェアがいつでもリリースできる...
目次gzip 圧縮を使用する理由は何ですか? nginxはgzipを実装するgzip処理nginx ...
目次1. 公式ドキュメント2. Vue CLIプロジェクトを作成する1. Vue CLIをインストー...
目次MySQLクラッシュ回復プロセス1. ブラックボックス下のデータフローを更新する2. やり直しロ...
この記事では、ショッピングカート決済機能を実現するためのVueの具体的なコードを例として紹介します。...
目次1. 優先キューの紹介2. 優先キューのカプセル化1. 優先キューの紹介通常のキューに要素が挿入...
NULL が頻繁に使用されるのはなぜですか? (1)Javaのnull Java の NullPoi...
序文最近、仕事でいくつかの問題が発生しました。crontab でスケジュールされたタスクが実行されま...
zhangxinxu より https://www.zhangxinxu.com/wordpress...
画像をダウンロードMySQLイメージの選択 docker 検索 mysql MySQL 5.7 イメ...
目次質問1. webpack webpack-cliをインストールする2. webpackのバージョ...
一言で言えば: データハイジャック (Object.defineProperty) + パブリッシュ...
1. はじめにPresto は、ギガバイトからペタバイトに及ぶデータ ソースに対してインタラクティブ...
デスクトップ システムをダウンロードするには、Ubuntu の公式 Web サイト (https:/...