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 タグをクリックして入力ファイルのアップロードダイアログボックスを表示する方法

推薦する

MySQL で乱数を生成し、文字列を連結する方法の例

この記事では、MySQL が乱数を生成し、文字列を連結する方法について例を使用して説明します。ご参考...

MySQLの手順を完全に削除する

目次1. まずMySQLサーバーを停止する2. MySQLサーバーをアンインストールする3. MyS...

WeChatアプレットのスケルトン画面の実装例

目次スケルトンスクリーンとはアプレットでスケルトン画面を生成する方法導入方法表示と非表示ユーザーエク...

React 入門レベルの詳細なメモ

目次1. Reactの基本的な理解1. はじめに2. Reactの特徴3. Reactが効率的な理由...

Linux で Spring Boot プロジェクトを開始および停止するためのスクリプトの例

Springboot プロジェクトを開始するには、次の 3 つの方法があります。 1. メインメソッ...

MySQLのさまざまなオブジェクトのサイズと長さの制限について話しましょう

目次識別子の長さ制限権限テーブルの範囲フィールドの長さ制限データベースとテーブルの数の制限テーブルサ...

Linux で AutoFs マウント サービスをインストールするチュートリアル

Samba サービスでも NFS サービスでも、サーバーの起動時にリモート共有リソースが自動的にマ...

CSSのline-heightを継承する方法

Line-height はどのように継承されますか?30px などの特定の値を書き込むと、この値が継...

CentOS 7.5 に Docker をインストールする詳細なチュートリアル

Docker入門Docker は、アプリケーションをより速く配信するのに役立つオープンソースのコンテ...

Mysqlの日付と時刻関数を扱う記事

目次序文1. 現在の時刻を取得する1.1 現在の日付と時刻を返す1.2 現在の日付を取得する1.3 ...

CSS3はテキストのレリーフ効果、彫刻効果、炎のテキストを実現します

この効果を実現するには、まず CSS のプロパティを知っておく必要があります。 text-shado...

Reactはダブルスライダークロススライドを実装します

この記事では、Reactでダブルスライダークロススライドを実装するための具体的なコードを参考までに共...

Linuxでバージョン情報を表示する方法

Linux でバージョン情報を表示する方法。ビット数、バージョン情報、CPU コア情報、CPU 固有...

優れたユーザー エクスペリエンス デザイナーが行うべき 5 つのこと (画像とテキスト)

この記事は、@C7210 によって翻訳されたブログ「Usability Counts」からの翻訳です...

カラーブロックレポート効果の動的な表示を実現する HTML (サンプルコード)

HTMLカラーブロックを使用してデータを動的に表示する <スタイル タイプ="te...