Vue+iview メニューとタブのリンク現在、vue+iview を使用してバックエンド管理システムを開発しています。クリックしたときに左側のメニューの右側にあるタブとコンテンツに対応する変更を加えたいと思っています。 しかし、長い間ルーティングに取り組んできましたが、まだこの機能を実現できていません。 vue+iview を使い始めた当初は、iview-admin が直接使用できることや、レイアウトなどがすぐに使える状態になっていることを知りませんでした。しかし、私はすでに長い間デモを書いていたので、諦めることができませんでした。 1. iviewのメニューとタブをレイアウトに使用し、これら2つのコンポーネントをメインページに配置します。メニューとタブのデータは同じで、スタイルを関連付ける必要があるため、状態管理には vuex を使用できます。管理する必要があるデータと状態変数は state に記述し、操作アクションは mutations に設定し、一部の動作は actions で listen します (私のメニューには拡大縮小部分がないため、actions は使用しません) 2.レイアウトが完了したら、メニューにクリックイベントを追加します。on-select では、まず、mutations にタブ変更イベントを登録します。左のメニューがクリックされたら、タブに既にタブがあるかどうかを確認し、isExist=false を設定します。存在する場合は、isExist が true に変更されます。存在しない場合は、タブがトラバースする配列にメニュー相対インデックス データを追加します。 変異タイプ 突然変異の場合: メニュー コンポーネント内のイベントは次のとおりです。 まず、タブ コンポーネントでページのデフォルト ルートを設定します。 次にイベントを追加します。 iview+Vue マルチレベルメニューリンク3 レベルのメニュー リンクを可能な限り愚かな方法で作成しました。 <テンプレート> <div> <v-model="whereMap.model1" を選択 スタイル="幅:200px" @on-change="getSecond"> <オプション v-for="リスト1内の項目" :value="アイテムID" :key="item.id">{{ item.label }}</オプション> </選択> <v-model="whereMap.model2" を選択 スタイル="幅:200px" @on-change="getThird"> <オプション v-for="リスト2の項目" :value="アイテムID" :key="item.id">{{ item.label }}</オプション> </選択> <v-model="whereMap.model3" を選択 スタイル="幅:200px"> <オプション v-for="リスト3内の項目" :value="アイテムID" :key="item.id">{{ item.label }}</オプション> </選択> <ボタンクラス="search-btn" タイプ="デフォルト" @click="searchClear">クリア</Button></div> </テンプレート> <スクリプト> エクスポートデフォルト{ データ () { 戻る { データテスト: { l1: [ { id: '猫', ラベル: '猫' }, { id: '犬', ラベル: '犬' } ]、 l2: { 猫: [{ id: 'sc', label: '子猫' }, { id: 'bc', label: '大きな猫' }], 犬: [{ id: 'sd', label: '子犬' }, { id: 'bd', label: '大型犬' }] }, l3: { sc: [{ id: 'sc1', label: '小さな猫' }, { id: 'sc2', label: '小さなオレンジ色の猫' }], bc: [{ id: 'bc1', label: '大きなトラ猫' }, { id: 'bc2', label: '大きなオレンジ色の猫' }] } }, リスト1: [], リスト2: [], リスト3: [], マップ: { モデル1: ''、 モデル2: ''、 モデル3: '' } } }, マウント(){this.init()}、 作成された(){ この.init() }, メソッド: { 初期化(){ this.list1 = this.datatest.l1 }, getSecond(val) { this.list2 = this.datatest.l2[値] }, getThird (値) { this.list3 = this.datatest.l3[値] }, 検索クリア() { コンソールログ(this.whereMap) this.whereMap = {}; this.list2 = []; this.list3 = []; } } } </スクリプト> 上記は私の個人的な経験です。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: MySQL データをエクスポートおよびインポートするための HeidiSQL ツール
>>: Tomcat を IDEA にダウンロード、インストール、デプロイするチュートリアル (IDEA の 2 つのホット デプロイ設定方法付き)
MySQL 8.0圧縮パッケージのインストール方法、詳細は次のとおりです知らせ:オペレーティング シ...
ハイパーリンク a タグはリンク ポイントを表し、英語の単語「anchor」の略語です。その機能は、...
問題の背景業務システムのサーバ監視システムからディスク使用率が90%に達したという早期警告通知が来た...
MySQL パスワードを忘れた場合の解決策: [root@localhost ~]# mysql -...
「これは革命になるだろう」という記事が出たあと。業界の皆様に認知され、もちろん内外からの評価もいただ...
以前、https://www.jb51.net/article/205922.htm で、Docke...
Innodbには以下のコンポーネントが含まれています1. innodb_buffer_pool:これ...
xhtml+css のウェブサイト再構築、ウェブ標準などについては、記事が多すぎるので繰り返しません...
この記事は主にDockerによるKafkaのデプロイとSpring Kafkaの実装について紹介しま...
Web ページ ボックス モデルには 2 種類あります。 1: 標準 W3C ボックス モデル。2:...
MySQL 5.7.13 Mac用インストールチュートリアル、非常に詳細で、以下のように記録されてい...
序文この記事には1. データベースのいくつかの主要な制約2. テーブル間の関係制約:主キー制約: 機...
Linux システムのネットワーク接続を構成するのは難しい場合があります。幸いなことに、多くの新しい...
序文長い間、MySQL のアプリケーションおよび学習環境は MySQL 5.6 以前のバージョンであ...
序文MySQL 8.0 の最新バージョンは 8.0.4 rc であり、正式版は近日中にリリースされる...