序文 以前は、キャッシュを使用してルートを強調表示していました。すべてのルートをトラバースし、クリックされるたびにルートの現在の値を強調表示し、アクティブな値を割り当てていました。その後、リフレッシュすると動作せず、ハイライトされた部分がデフォルト値の 0 になってしまうことが分かりました。ここでは主にこの問題の解決方法について説明します。 1 つ目は、次のようにクラスを追加することです。 .ルーター{ フォント: 12px/40px 'Microsoft YaHei'; 背景: ピンク; 背景: ピンク; 色: 白; カーソル: ポインタ; テキスト配置: 中央; 表示: インラインブロック; 幅: 40px; 背景: ピンク; &.isActive{ 背景: 青; 色:赤; } } 2 番目はパスを監視することです。 元のコードは次のとおりです。 <テンプレート> <div id="メイン"> <ul style="height:40px;background:pink;"> <li class="router" v-for="(item,index) in items" :key="index" style="float:left;" :class="item.isActive?'isActive':''" @click="routerTo(item,index)"> <span >{{item.name} </span> </li> </ul> <ルータービュー></ルータービュー> </div> </テンプレート> <スクリプト> エクスポートデフォルト{ データ () { 戻る { アクティブインデックス2:'0'、 アイテム:[ {名前:'twoPage',コード:'twoPage',パス:'/twoPage',デフォルトアイコン:require('@/assets/icon/BehaviorRank-default.png'), アクティブアイコン:require('@/assets/icon/behaviorrank-active.png'),isActive:true}, {名前:'three',コード:'three',パス:'/three',デフォルトアイコン:require('@/assets/icon/ChannelAllocation-default.png'), activeIcon:require('@/assets/icon/ChannelAllocation-active.png'),isActive:false}, {名前:'four',コード:'four',パス:'/four',デフォルトアイコン:require('@/assets/icon/myReport-default.png'), activeIcon:require('@/assets/icon/myReport-active.png'),isActive:false}, ]、 } }, 方法:{ ルーターTo(アイテム,インデックス) { (i = 0 とします; i < this.items.length; i++) { this.items[i].isActive=false } this.items[インデックス].isActive=true this.$router.push({name:item.name}) }, } } </スクリプト> <スタイル lang='less'> #主要{ .ルーター{ フォント: 12px/40px 'Microsoft YaHei'; 背景: ピンク; 背景: ピンク; 色: 白; カーソル: ポインタ; テキスト配置: 中央; 表示: インラインブロック; 幅: 40px; 背景: ピンク; } .isActive{ 背景: 青; 色:赤; } } </スタイル> 効果: ただし、[更新] をクリックすると、強調表示されたインデックスは初期化位置 0 に移動します。 この問題を解決する方法 これを行う 1 つの方法は、sessionStorage をキャッシュすることです。クリックするたびにキャッシュに保存され、更新されて変数から値が取得され、変数に値がない場合はキャッシュから値が取得されます。しかし、入金や出金を繰り返すのが面倒だと感じる人もいるかもしれません。 別の方法は、初期化中にルートを取得し、異なるルートに応じて対応するナビゲーションをアクティブにすることです。 作成された(){ // var path=window.location.hash.slice(2); // パラメータがない場合でもこれは許容されますが、推奨されません var path=this.$route.name // これは推奨されます console.log(path) if(パス){ (i = 0 とします; i < this.items.length; i++) { this.items[i].isActive=false } スイッチ(パス){ ケース 'twoPage': this.items[0].isActive=true; 壊す; ケース '3': this.items[1].isActive=true; 壊す; ケース '4': this.items[2].isActive=true; 壊す; } } }, 添付ファイル: Vueは現在のルートの特定のコードをクリックするとハイライト表示されます 機能表示: コンポーネントコード: ラベルに正確さを追加 .ルーターリンクアクティブ{ 背景: rgba(255,255,255,0.8); 色: グレー; } <テンプレート> <ナビ> <ul> <li> <router-link to="/" exact>ブログ</router-link> <router-link to="/AddBlog" exact>ブログを書く</router-link> </li> </ul> </nav> </テンプレート> <スクリプト> エクスポートデフォルト{ 名前: "bolgheader" } </スクリプト> <スタイルスコープ> ul{ リストスタイルタイプ: なし; テキスト配置: 中央; マージン:0; } li{ 表示: インラインブロック; マージン:0 10px; } { 色:rgb(102, 119, 204); テキスト装飾: なし; パディング:12px; 境界線の半径: 5px; フォントサイズ:20px; } ナビ{ 背景: #eee; パディング: 30px 0; 下部マージン: 40px; } .ルーターリンクアクティブ{ 背景: rgba(255,255,255,0.8); 色: グレー; } </スタイル> 要約する これで、vue コンポーネントのルート強調表示問題の解決策に関するこの記事は終了です。vue コンポーネントのルート強調表示に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Kali Linux システムのバージョンを確認する方法
>>: MySQL Community Server 8.0.11 のインストールと設定方法のグラフィックチュートリアル
一番外側の boxF は 120 度回転し、2 番目の boxS は -60 度回転し、3 番目の ...
1. 最近、Ubuntu の新しいバージョンをインストールしました。/etc/ssh/sshd_co...
フロントエンドとバックエンドがやり取りする場合、get または delete を介してバックエンドに...
目次1分でgithub+Jekyllブログにトラフィック機能を追加する1. ジェクルとは何か1. J...
視覚効果が非常に美しく、訪問者に強い印象を残すことがわかります。さらに、重要なポイントが強調され、訴...
序文プロジェクト内のパズルゲーム(デジタル華容路とも呼ばれる)を再構築するのに 2 日かかりました。...
なぜ詰まっているのでしょうか?言及しなければならない前提があります。フロントエンド開発者は皆、ブラウ...
目次索引- 総合索引- ユニークなインデックス- 主キーインデックス- 複合インデックス- 全文索引...
目次序文1. MySQLをアンインストールする2. MySQLをインストールする要約する序文学習中に...
目次1. コンポーネントの肥大化2. 状態を直接変更する3. プロパティは数値を渡す必要があるが文字...
mysql コマンドを使用して、mysql のインストール パスを表示できます。 # 次の 2 つの...
この記事では、画像フォロー効果を実現するためのjQueryの具体的なコードを参考までに紹介します。具...
この記事では、参考までにMySQL 5.7.24圧縮パッケージのインストールチュートリアルを紹介しま...
データ分析会社Net Market Shareによると、Linuxデスクトップオペレーティングシステ...
カルーセル主なアイデアは次のとおりです。大きなコンテナには、コンテナの幅の整数倍の非常に長いテーブル...