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

推薦する

dockerでlnmp環境を構築する方法

プロジェクトディレクトリを作成する php ディレクトリをコピーする次のプロジェクト構造を作成します...

Linux ssh サービス情報と実行ステータスを表示する方法

Linux での ssh サービス構成など、ssh サーバー構成に関する記事は多数あります。ここでは...

Docker イメージの最適化 (1.16GB から 22.4MB)

目次最適化の第一歩: 軽量ベースイメージの使用第2段階の最適化:多段階構築Docker は、ソフトウ...

ドロップダウンメニューを実現するためのHTML+CSS

1. ドロップダウンリストの例コードは次のとおりです。 <!doctypehtml> ...

Vue スクロールダウンしてさらにデータを読み込む スクロールケースの詳細な説明

vue-無限スクロールインストール npm インストール vue-infinite-scroll -...

HTML テーブルタグチュートリアル (27): セルの背景画像属性 BACKGROUND

セルの背景画像を設定でき、任意の GIF または JPEG 画像ファイルを使用できます。基本的な構文...

htm 初心者ノート(初心者は必ず読んでください)

1. HTMLとは何かHTML (ハイパーテキスト マークアップ言語): ハイパーテキスト マーク...

React onClickにパラメータを渡す問題について話しましょう

背景下のようなリストでは、削除ボタンをクリックすると削除操作を実行する必要があります。 リスト生成:...

Centos 7 sshd の変更 | ルートログインの禁止と sshd ポートスクリプトの定義

1. 新しいユーザーwwweee000を作成します [root@localhost ~]# user...

Vue3はサイドナビゲーションテキストスケルトン効果コンポーネントをカプセル化します

Vue3プロジェクトのカプセル化サイドナビゲーションテキストスケルトン効果コンポーネント-グローバル...

SVNサービスバックアップ操作手順の共有

SVN サービスのバックアップ手順1. ソースサーバーとターゲットサーバーを準備するソースサーバー:...

Docker はキューとタスクのスケジューリングを実現するために Laravel アプリケーションをデプロイします

前回の記事では、Docker を使用して Laravel アプリケーションをデプロイする方法について...

MySQL データベース 8 - データベース内の関数の適用の詳細な説明

データベースの組み込み関数の使用この記事では、主に日付関数、文字列関数、数学関数など、データベースの...

Node.js のモジュール性、npm パッケージ マネージャーの説明

目次モジュール化の基本概念モジュール化とは何かモジュール分解の利点Node.js のモジュール性No...

mysql 3つのテーブルを接続してビューを作成する

3 つのテーブルが接続されています。テーブル A のフィールド a はテーブル B のフィールド b...