この記事の例では、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 インストーラのインストール グラフィック チュートリアル
目次リストレンダリングキーの原理と機能主要原則の分析キーの役割要約するリストレンダリングキーの原理と...
Vue.js を使用して、クリックしてズームできる 9 グリッドの画像表示モジュールを作成しました。...
序文一般的な開発では、画像をディレクトリにアップロードし、ディレクトリとファイル名を連結してデータベ...
MySQL は最も人気のあるリレーショナル データベース管理システムです。WEB アプリケーションに...
この記事では主に、Tencent TIM インスタント メッセージングを Vue と統合する方法を紹...
目次必要:機能ポイントレンダリング実装のアイデア具体的なコード(react\taro3.0)特定のコ...
tomcat の web.xml を構成する場合、サーブレットは比較的重要な問題です。ここでは、サー...
JavascriptとDOMの関係は非常に曖昧で、CSSやHTMLのフロントエンド技術層も理解してい...
あなたも私と同じように、コンピューターのファイルを整然と整理し、不要なファイルを適宜削除するプログラ...
私はプロジェクトを実行するために react を使い始めたばかりで、非常に未熟で完全な初心者です。私...
この記事では、MySQL 5.7 で追加された json フィールド タイプの使用方法を例を使って説...
ほとんどのナビゲーション バーは、下の図に示すように水平に配置されていますが、これはどのように実現さ...
1. 環境整備各コンテナの IP アドレス: nginx: 172.16.10.10マイSQL: 1...
問題の背景:再生中のビデオのスクリーンショットを撮る必要があります。ビデオはビデオタグを使用して再生...
目次1. 結論から始めましょう2. キーの役割2.1 例2.2 上記の例を修正する2.3 例を再度修...