Vue プロジェクトで addRoutes を使用する際の問題の解決策

Vue プロジェクトで addRoutes を使用する際の問題の解決策

序文

AddRoutes 公式紹介:

関数シグネチャ:

router.addRoutes(ルート: Array<RouteConfig>)

ルーティング ルールを動的に追加します。引数は、ルート オプションに準拠した配列である必要があります。

ここ2日間、vueバックエンドの権限管理システムに取り組んでいたところ、vueが提供するaddRouteを使用してルートを追加した後、2つのバグが発生することがわかりました。解決方法を見てみましょう〜

1. 404 ページ

1. 原因

vueが提供するaddRoutesを使用して動的ルーティングを追加した後、404ページのルーティング設定がルーティングの最後に表示されなくなりました。

2. 解決策

404ページのルートを動的ルートの最後に追加します

コードは次のとおりです(例):

// xxx => ユーザーが持つ動的ルート配列 xxx.push({ path: '*', redirect: '/404', hidden: true })

// ルーティング設定を動的に追加する router.addRoutes(xxx)

2.白い画面を更新する

1. 原因

更新時にダイナミックルーティングが完全にロードされない

2. 解決策

ルートを追加したら、ページに入ります

コードは次のとおりです(例):

if (ユーザーの動的ルーティングがロードされていない場合) {
	//更新時に発生する白い画面のバグを解決する
  次({
    ...to, // next({ ...to }) の目的は、ページに入る前にルートが追加されていることを確認することです (再入と理解できます)
    replace: true // 一度だけ再入力し、重複した履歴を保持しない})
} それ以外 {
	次()
}

3. ルーティングの重複

1. 原因

ルート設定は router.addRoutes(xxx) で追加されます。ログアウトしてもクリアされません。再度ログインすると再度追加されるため、重複が発生します。

2. 解決策

コードは次のとおりです(例):

// ルートエクスポート関数をリセットする resetRouter() {
  定数 newRouter = createRouter()
  router.matcher = newRouter.matcher // ルートのマッチングパスをリセットします}

このメソッドはルートを再インスタンス化します。これは新しいルートを変更することと同じです。以前に追加されたルートはもう存在しません。ログアウトするときにのみ呼び出す必要があります。

要約する

Vue プロジェクトで addRoutes を使用する際の問題の解決に関するこの記事はこれで終わりです。addRoutes を使用した Vue の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • vue は addRoutes でルートを動的に追加した後に発生する更新失敗の問題を解決します
  • vue-router+vuex addRoutes はルートとメニューの動的読み込みを実現します
  • vue addRoutes を使用して動的権限ルーティング メニューを実装する例
  • Vue で addRoutes を使用して動的ルーティングを実装する例
  • vue addRoutes が有効にならない問題を解決する
  • vueはaddRoutesを複数回解決してルートを追加し、操作を繰り返します。
  • vue addRoutes ルーティング動的ロード操作

<<:  nginxリバースプロキシによるセッション障害の問題の解決策

>>:  mysql8.0.19 winx64バージョンのインストール問題を解決する

推薦する

Linux 上での Go 環境の構築のインストールと設定の説明

Linux で Go 環境を構築するのは非常に簡単です。 1. go1.2.1.linux-386....

MySQL関連のツールをいくつかお勧めします

序文:インターネット技術の継続的な発展に伴い、MySQL 関連のエコシステムはますます充実し、ますま...

CentOS 7のインストールと設定方法のグラフィックチュートリアル

この記事は、CentOS 7の詳細なインストールチュートリアルを参考のために記録します。具体的な内容...

CSS の境界線を通して三角形と矢印を実装するサンプルコード

1. CSS ボックスモデルボックスには、余白、境界線、パディング、コンテンツが含まれます境界線の接...

Linux サーバー上で nvidia-docker 環境を設定するプロセスの詳細な説明

Docker はコンテナに相当し、必要な動作環境に応じて対応する動作環境を構築できます。このとき、各...

MySQL 8.0.12 の詳細なインストールおよびアンインストール チュートリアル

1. MySQL 8.0.12 バージョンのインストール手順。 1. ダウンロードhttps://d...

vagrant+virtualBoxで仮想マシンを構築する方法

1. はじめにVagrant は、仮想マシン (VirtualBox) を構築および管理するためのツ...

HTML フローティング フレーム (iframe 読み込み HTML) の設定と使用の例

コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBLIC "...

クリーンで美しいウェブデザインのための4つの原則

この記事では、 Webデザインに関連するこれら4 つの原則について説明します。これら4 つの原則を念...

MySQLにおけるMTRの概念

MTR は Mini-Transaction の略です。名前が示すように、これは「最小のトランザクシ...

MySQL の一般的な SQL ステートメントの概要

1. mysqlエクスポートファイル: SELECT `pe2e_user_to_company`....

Vue でよく使われる高階関数と包括的な例

1. 配列のよく使われる高階関数配列があり、その配列に対して次の操作を実行したいとします。 100 ...

エラー mysql テーブル 'performance_schema...解決方法

テスト環境は、JDBCドライバを使用してMariaDB 5.7でセットアップされています。 <...

MySQL 8の新機能ROLEの詳しい説明

MySQL ROLE はどのような問題を解決しますか?プロフェッショナルな資質を持ち、権限管理に細心...

mysql5.6 の無効な utf8 設定の問題を解決する

mysql5.6 のグリーン バージョンを解凍すると、my-default.ini ファイルが作成さ...