Vue でルートをジャンプする方法をご存知ですか?

Vue でルートをジャンプする方法をご存知ですか?

最初の方法: router-link (宣言型ルーティング)

1. パラメータなし <router-link :to="{name:'home'}"> 
<router-link :to="{path:'/home'}"> //名前でもパスでもどちらでも構いませんが、名前の使用を推奨します  
// 注意: router-link 内のリンクが '/' で始まる場合、ルート ルートから開始されます。 '/' で始まらない場合は、現在のルートから開始されます。
2. パラメータ <router-link :to="{name:'home', params: {id:1}}"> を使用  
// params はパラメータを渡します (post と同様)
// ルーティング構成パス: "/home/:id" またはパス: "/home:id" 
// パスを設定しない場合、初回はリクエストできますが、ページを更新すると ID は消えます // パスを設定すると、ページを更新しても ID は保持されます // HTML はパラメータ $route.params.id を取得します
// スクリプトはパラメータ this.$route.params.id を受け取ります
<router-link :to="{name:'home', クエリ: {id:1}}"> 

2番目の方法: router.push (プログラムによるルーティング)

// 文字列 router.push('home')
// オブジェクト router.push({ path: 'home' })
// 名前付きルート router.push({ name: 'user', params: { userId: '123' }})
// クエリパラメータを使用すると、/register?plan=private になります
router.push({ パス: 'register', クエリ: { プラン: 'private' }})

注: パスが指定されている場合、パラメータは無視されますが、上記の例のクエリの場合はそうではありません。代わりに、ルート名を指定するか、次の例に示すようにパラメータ付きの完全パスを記述する必要があります。

定数ユーザーID = '123'
router.push({ name: 'user', params: { userId }}) // -> /user/123
router.push({ パス: `/user/${userId}` }) // -> /user/123
// ここでのパラメータは有効ではありません router.push({ path: '/user', params: { userId }}) // -> /user

3番目の方法: this.$router.push() (関数内での呼び出し)

1. パラメータなし this.$router.push('/home')
this.$router.push({name:'home'})
this.$router.push({path:'/home'})
2. クエリパラメータ this.$router.push({name:'home',query: {id:'1'}})
this.$router.push({path:'/home',query: {id:'1'}})
// html はパラメータ $route.query.id を受け取ります
// スクリプトはパラメータ this.$route.query.id を受け取ります
3. paramsパラメータ this.$router.push({name:'home',params: {id:'1'}}) // 名前のみ使用可能
// ルーティング構成パス: "/home/:id" またはパス: "/home:id" 、
// パスを設定しない場合、初回はリクエストできますが、ページを更新すると ID は消えます // パスを設定すると、ページを更新しても ID は保持されます // HTML はパラメータ $route.params.id を取得します
// スクリプトはパラメータ this.$route.params.id を受け取ります
4. クエリとパラメータの違い。クエリは get に似ています。ページがリダイレクトされた後、?id=1 と同様に、パラメータが URL に追加されます。重要でないパラメータは、この方法で渡すことができます。パスワードなどは、引き続き params で渡すことができます。リフレッシュ ページ ID は、引き続き params にあります。post と同様に、ページがリダイレクトされた後、パラメータは URL に追加されませんが、リフレッシュ ページ ID は消えます。**注: ルートのパラメータを取得するには、最後に r を付けずに $route を使用します**

4 番目の方法: this.$router.replace() (上記と同じ使用法、push)

5番目の方法: this.$router.go(n)

this.$router.go(n)
n ページ前または後ろにジャンプします。n は正または負の整数です。ps: this.$router.push との相違点
指定された URL パスにジャンプし、履歴スタックにレコードを追加します。戻るをクリックすると、前のページに戻ります。this.$router.replace
指定された URL パスにジャンプしますが、履歴スタックには記録されません。[戻る] をクリックすると、前のページに移動します (つまり、現在のページが直接置き換えられます)。
this.$router.go(n)
n ページ前または後ろにジャンプします。n は正または負の整数です。

Params はルートの一部であり、必須です。クエリは URL の後に連結されるパラメータです。クエリがなくても問題ありません。
ルートにパラメータが設定されると、そのパラメータはルートの一部になります。ルートにパラメータが渡されているが、リダイレクト中にパラメータが渡されない場合、リダイレクトは失敗するか、ページにコンテンツが表示されません。

params と query が設定されていなくても、パラメータを渡すことはできます。ただし、params が設定されていない場合、ページが更新されたり返されたりすると、パラメータは失われます。

どちらもパラメータを渡すことができますが、違いは何ですか?

クエリ パラメータはパスで構成されていますが、params パラメータは名前で構成されています。params でパスを構成することは無効です。

クエリはルーティング設定でパラメータを設定する必要はありませんが、パラメータは設定する必要があります

クエリによって渡されたパラメータはアドレスバーに表示されます。

パラメータの更新は無効になりますが、クエリは渡された値を保存し、更新後も変更されません。

参照:

https://www.jb51.net/article/183611.htm

vue.js 公式サイト

要約する

この記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS.COM のその他のコンテンツにも注目していただければ幸いです。

以下もご興味があるかもしれません:
  • vue ルーティング ビュー router-view のネストされたジャンプの実装
  • Vueルーティング相対パスジャンプメソッド
  • Vue ルーティング this.route.push ジャンプ ページが更新されない場合の解決策
  • Vue のルーティングは履歴操作にカウントされません
  • Vue の同じルートジャンプはルートコンポーネント操作を強制的に更新します

<<:  MySQL における in と exists の違いの詳細な説明

>>:  a タグをクリックして入力ファイルのアップロードダイアログボックスを表示する方法

推薦する

アイデアのパッケージ化とクラウドサービスへのアップロードにおけるプロジェクトプロセスの分析

1つ。まず、アイデアとしてパッケージ化する必要があります。私はSpringbootフレームワークプロ...

Web ページ WB.ExecWB 制御印刷メソッド呼び出しの説明とパラメータの紹介

WebページWB.ExecWB制御印刷方法コードをコピーコードは次のとおりです。 <テーブルの...

Node.js のワーカー スレッドの詳細な理解

目次概要Node.js における CPU バウンド アプリケーションの歴史CPUを集中的に使用する操...

表のセル間隔とセルパディングの違いの詳細な説明

テーブルとは何ですか?セルセルで構成されています。表では、<td> の数は、<tr...

Vue+element+oss はフロントエンドのフラグメントアップロードとブレークポイント再開を実現します

純粋なフロントエンド実装:切片上傳斷點續傳。斷點續傳カットとアップロードに基づいて実装する必要があり...

Vue axios インターセプターは、繰り返しリクエストのキャンセルによく使用されます。

導入前回の記事では、axios のシンプルなカプセル化と、axios インターセプターの適用シナリオ...

Docker プルタイムアウトの解決策

最近、Docker イメージのプルが非常に不安定です。遅く、タイムアウトすることがよくあります。 x...

HTML で自動ページジャンプを実現する 5 つの方法

前回の記事では、HTML ページが 3 秒後に自動的にジャンプする一般的な 3 つの方法を紹介しまし...

CentOS7 での PostgreSQL 11 の詳細なインストールと設定のチュートリアル

1. 公式ウェブサイトアドレス公式サイトではインストールの参考手順が紹介されています。公式サイトを見...

docker run によって起動されたコンテナがハングしてデータが失われた場合の対処方法

シナリオの説明あるシステムでは、機能サービスはdocker stack deploy xxxで起動し...

Vue ミックスインの使い方の詳しい説明

目次Vue ミックスインの使用ミックスインでのデータアクセスミックスイン/index.jsホーム.v...

HTML テーブル マークアップ チュートリアル (39): ヘッダーの明るい境界線の色属性 BORDERCOLORLIGHT

テーブル ヘッダーでは、明るい境界線の色を個別に定義できます。基本的な構文<TH ボーダーカラ...

nginx を使用して 1 つのドメイン名で複数の Laravel プロジェクトを構成する方法の例

背景会社のサブプロジェクトが増えるにつれて、さまざまなサイズのプロジェクトが10個以上になります(バ...

CSS属性のマージンの理解について話す

1.マージンとは何ですか?マージンは、要素の周囲のスペースの間隔を制御するために使用され、視覚的にス...