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 を自動シャットダウンする方法

序文最近、私の住居の電力事情が不安定で、突然の停電が頻繁に起こります。ノートパソコンを持っているので...

Windows 7 での MySQL 8.0.18 の導入とインストールのチュートリアル

1. 事前準備 (windows7+mysql-8.0.18-winx64) 1. ダウンロードアド...

MySQL 5.6 zipパッケージのインストールチュートリアルの詳細

これまでは、拡張子が .msi のファイル、つまり、完全なインストールが使用されていました。しかし、...

CSS はモバイル デバイスで水平スクロール ナビゲーション バーを実装します (PC デバイスにも適用可能)

関数の起源最近、水平スクロール バーを必要とする H5 に取り組んでいました。いくつかのドキュメント...

テーブル編集操作を実現する js+Html

この記事では、テーブルの編集操作を実現するためのjs+Htmlの具体的なコードを参考までに共有します...

JavaScript はモーダルボックスのドラッグ効果を実現します

これはモーダル ボックスのドラッグのケースです。ここで実装する関数は次のとおりです。 1. ポップア...

MySQL 8.0 のインストール中に発生した 3 つの小さなエラーの概要

序文これまで当社ではMySQLの5.7シリーズを使用していましたが、バージョン8.0のリリースに合わ...

SQL 集計、グループ化、並べ替え

目次1. 集計クエリ1. COUNT関数2. SUM関数3. AVG関数4. MAX関数とMIN関数...

Nginx リバース プロキシと負荷分散を実装する方法 (Linux ベース)

ここで nginx のリバース プロキシを試してみましょう。リバースプロキシ方式とは、インターネット...

この記事では、CSSの2列レイアウトと3列レイアウトの具体的な使い方をまとめます。

序文大規模なフロントエンドの開発に伴い、UI フレームワークが次々と登場し、フロントエンド開発におけ...

Linux アカウントのパスワードを変更する詳細な例

個人アカウントのパスワードを変更する一般ユーザーが個人アカウントのパスワードを変更する場合は、他のコ...

Dockerはコンテナに入るためにルートを使用する

まずdockerコンテナを実行しますルートユーザーとしてコマンドを実行する sudo docker ...

インスタンス化されたオブジェクトパラメータによるMySQLクエリ例の説明

この記事では、オブジェクト パラメータをインスタンス化して MySQL でデータをクエリする方法を紹...

Vue バックエンド管理システムのページング機能の実装例

この記事では、主に Vue バックグラウンド管理システムのページング機能の実装を紹介し、次のように共...

Vite と Vue CLI の長所と短所

Vue エコシステムには Vite と呼ばれる新しいビルド ツールがあり、Vue CLI よりも 1...