Vue ルーティングフォールバックに最適なソリューション (vue-route-manager)

Vue ルーティングフォールバックに最適なソリューション (vue-route-manager)

ルーティングマネージャー

各ジャンプのvue-route名を記録し、フォールバックを処理するための組み込みメソッドを備えているため、指定されたページに簡単にフォールバックできます。

背景

著者が開発したプロジェクトでは、さまざまな派手なジャンプによく遭遇します。たとえば、ガイドページでの選択操作から最終的な提出とレビューまで、途中に無数のページがあり、途中の操作が異なっていても、最終的なロールバックの深さが異なります。

プロジェクトの出発点が選択ページであり、最終的に提出ページに到達し、元のページ(選択ページ)に戻ると仮定します

ページを選択 --> B --> C --> ページを送信
ケース1: 選択から送信まで、BとCを経由します。この時点で、Aに戻るにはrouter.go(-3)を呼び出す必要があります。
----------------------------------------

ページを選択 --> B-1 ------> ページを送信
ケース2では、選択から送信までB-1のみが発生します。この時点で、go(-3)は適用されなくなります。このとき、2番目のケースを区別するためにクエリパラメータ(チャネルID)が追加されることがあります。
----------------------------------------

ページを選択 --> B-2 --> C-2 --> C-2-1 --> ページを送信
この場合、go(-3) は適用できないだけでなく、クエリ パラメータに追加の型が必要です。後でさらに多くのチャネルを区別する必要がある場合は、次のように考えることができます...

現時点では、RouteManagerプラグインを使用して、一連の複雑な問題を処理できます。

はじめる

 npm i vue-route-manager -S
 'vue' から Vue をインポートします
 ​
 // ルートマネージャをインポートします import VueRouteManager from 'vue-route-manager'
 ​
 // Vue にマウントします Vue.use(VueRouteManager, { /* ...ManagerOptions */ })
 ​
 // ページのこの時点では、this.$RouteManager を使用してマネージャーにアクセスできます。

ManagerOptions パラメータ

パラメータ名タイプしなければならない説明する
ルーターVueルーターはいVueRouter オブジェクト
デバッグブールいいえデバッグを有効にするかどうか

ホームページ

ルート情報 { パス: '/home'、名前: 'home'、コンポーネント: Home }

 <テンプレート>
  <button @click="jump">次のページ</button>
 </テンプレート>
 <スクリプト>
 エクスポートデフォルト{
    メソッド: {
       ジャンプ(){
          //ホームページの名前を記録する
          this.$RouteManager.setHome('home')
          this.$router.push({ name: 'page-1' })
      }
    }
 }
 </スクリプト>

ページ-1 ページ

ルーティング情報 { パス: '/page_1'、名前: 'page-1'、コンポーネント: Page-1 }

 <テンプレート>
  <div class="page-1">
  ページ1
  <button @click="$router.push({ name: 'page-2' })">次のページ</button>
  <button @click="$router.replace({ name: 'page-1' })">リダイレクト</button>
  </div>
 </テンプレート>

ページ2

ルート情報 { パス: '/page_2'、名前: 'page-2'、コンポーネント: Page-2 }

 <テンプレート>
  <div class="page-2">
  ページ2
  <button @click="$router.push({ name: 'page-3' })">次のページ</button>
  <button @click="backToHome">ホームに戻る</button>
  </div>
 </テンプレート>
 <スクリプト>
 エクスポートデフォルト{
    メソッド: {
       ホームに戻る(){
          // 最初のレコードのホームページに戻るには backHome を呼び出します this.$RouteManager.backHome()
      }
    }
 }
 </スクリプト>

ページ3ページ

ルーティング情報 { パス: '/page_3'、名前: 'page-3'、コンポーネント: Page-3 }

 <テンプレート>
   <div class="page-3">
    ページ3
     <button @click="$backToHome">ホームに戻る</button>
     <button @click="backToPage">ページ 1 に戻る</button>
   </div>
 </テンプレート>
 エクスポートデフォルト{
    メソッド: {
      ページに戻る(){
          // 指定されたページに戻るには backByName を呼び出します (このページを通過している必要があります)
          this.$RouteManager.backByName('page-1')
      },
  ホームに戻る(){
          // 最初のレコードのホームページに戻るには backHome を呼び出します this.$RouteManager.backHome()
      }
    }
 }
 </スクリプト>

問題を解決する

A --> B --> C --> D -- 戻る -> A // ケース 1
|--> B-1 ------> D --Return-> A // ケース 2
|--> B-2 --> C-2 -->C-2-1 --> D --戻る-> A // ケース 3

まず、ページAでthis.$RouteManager.setHome('page-A')またはthis.$RouteManager.setHome()を呼び出します。

次にページ B に戻る必要がある場合は、これを呼び出します。$RouteManager.backHome()

方法

setHome([名前])

  • 名前
    • タイプ: 文字列
    • name はルートリスト内の名前を参照します { path: '/page_3', name: 'page-3', component: Page-3 }
    • デフォルト: 現在のルートの名前

最終的に返される必要があるページルート名を設定します

戻るホーム()

ホームページに戻り、setHomeでホームページを設定します。

backByName(名前)

  • 名前
    • タイプ: 文字列
    • name はルートリスト内の名前を参照します { path: '/page_3', name: 'page-3', component: Page-3 }

指定した名前のページに戻る

要約する

これで、Vue ルーティング フォールバックに最適なソリューションである vue-route-manager に関するこの記事は終了です。Vue ルーティング フォールバックに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • vueでは、前のステップに戻ることは禁止されており、ルートは履歴を保存しません。

<<:  nginx がドメイン名アクセス用に設定されている場合にドメイン名の後に 2 つのスラッシュ // が表示される問題の解決方法

>>:  MySQL パーティションテーブルのベストプラクティスガイド

推薦する

レスポンシブWebデザイン学習(2) — 動画をレスポンシブにすることはできるのか?

前回のエピソードレビュー:昨日は、ページがさまざまなデバイス サイズにどのように対応するかについて説...

Dockerイメージ内のnoneイメージ操作を削除する

普段はdocker buildコマンドでイメージを生成していますが、コードの更新が頻繁に行われるとn...

MySQLデッドロック問題の詳細な分析

序文私たちのビジネスがまだ初期段階にあり、同時実行の度合いが比較的低い場合、数年間はデッドロックの問...

nginx 設定ファイルパスとリソースファイルパスを表示する方法

nginx 設定ファイルのパスを表示する nginx -t 経由nginx -t コマンドの本来の機...

ffmpeg 中国語パラメータの説明と使用例

1. ffmpeg がビデオ ファイルをプッシュする場合、オーディオとビデオのエンコード形式は H2...

CSSの複数条件の書き方の詳細説明:

:not疑似クラスセレクターは、式に一致しない要素をフィルタリングできます。例 テーブル tbod...

シンプルな商品スクリーニング機能を実現するjs

この記事の例では、商品スクリーニング機能を実装するためのjsの具体的なコードを参考までに共有していま...

Vueプロジェクトでパラメータジャンプ機能を実装する

ページの説明:​ メインページ: 名前 —> shishengzuotanhuichaxun ...

JavaScript の instanceof メソッドの手動実装

1. instanceofの使用法instanceof演算子は、コンストラクター関数のprototy...

MySQLシリーズ15 MySQL共通設定とパフォーマンスストレステスト

1. 一般的なMySQLの設定以下のすべての構成パラメータは、32G のメモリを搭載したサーバーに基...

JSはBaidu Newsナビゲーションバーの効果を実現

この記事では、Baidu News Navigation Barの効果を実現するための具体的なJSコ...

MySQL の制限ページング最適化ソリューションの実装に関する簡単な説明

MySQL のページングステートメントの使用制限Oracle や MS SqlServer と比較す...

JS を使用して配列内の要素の存在を 10 分で判断する

序文フロントエンド開発では、配列内に要素が存在するかどうかを判断する必要があることがよくあります。実...

MySQL データベースのマスター・スレーブ レプリケーションと読み取り/書き込み分離

目次1. マスタースレーブレプリケーションマスタースレーブレプリケーション3スレッドマスタースレーブ...

JSはシンプルなカウンターを実装します

HTML CSS および JavaScript を使用して、プラス、マイナス、ゼロの 3 つのボタン...