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バージョンのインストール問題を解決する

推薦する

Tomcat イメージをインストールして Docker に Web プロジェクトをデプロイする方法を簡単に説明します。

1. Tomcatをインストールする1. Docker HubでTomcatイメージを見つける d...

JavaScriptの厳密モードが8進数をサポートしていない問題の説明

JavaScript厳密モードが 8 進数をサポートしていないという問題に関して、まず、 Java...

Linux のリンク解除機能とファイルの削除方法

1. リンク解除機能ハード リンクの場合、unlink はディレクトリ エントリを削除し、inode...

JavaScriptにおけるこのポインティング問題の詳細な説明

序文信じてください。この記事の 7️⃣ ステップを覚えておけば、JS の this リファレンスを完...

Windows Apache 環境で SSL 証明書を展開して、Web サイトを https 対応にする方法

SSL 証明書の使用についてはここでは説明しません。SSL 証明書を導入する必要がある友人は、すでに...

ボタンをEnterキーに関連付けるjsコード

コードをコピーコードは次のとおりです。 <html> <ヘッド> <ス...

Nginx セッション損失問題の解決策

nginx をリバース プロキシ tomcat として使用する場合、セッション損失が発生する可能性が...

vue v-for ループ オブジェクトの属性

目次1. ループオブジェクト内の値2. ループオブジェクト3. キーと値のループ1. ループオブジェ...

vue2 vue3 での Echarts の詳細な使用方法

目次1. インストール2. vue2でEchartsを使用するmain.jsファイル内コンテナが与え...

MySQLの起動失敗の解決策

MySQLの起動失敗の解決策MySQLを起動できませんmysqlを停止した後、いくつかの操作(ホスト...

Linux のよく使うコマンドの使い方を詳しく解説(第 2 回)———— テキストエディタのコマンド vi/vim

vi/vim の紹介どちらもマルチモード エディターです。違いは、vim が vi のアップグレー...

docker run後にコンテナがExited (0)と表示される問題を解決する

Centos7 上で openresty 用の Dockerfile を作成し、ビルドしました。 d...

HTMLにおけるbackground-image属性の設定の詳細な説明

写真といえば、まず背景画像が思い浮かびます。私たちの装飾の多くは背景画像を使用して実現されているから...

ポートマッピング後に Docker コンテナが突然接続に失敗する問題のトラブルシューティング プロセス

1. 背景通常、外部サービスを提供する必要がある Docker コンテナの場合、起動時に -p コマ...

K8Sの5つのコントローラーの紹介と使用

目次k8sのコントローラータイプポッドとコントローラの関係デプロイメント(ステートレスアプリケーショ...