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

推薦する

JavaScript キャンバスでカラフルな太陽のハロー効果を実現

この記事では、カラフルな太陽のハロー効果を実現するためのJavaScriptキャンバスの具体的なコー...

Vue+element はローカル検索機能付きのドロップダウン メニューを実装します

必要:バックエンドは配列オブジェクトを返し、それがフロントエンドで配列に結合されます。配列は名前に従...

Tomcat が localhost に通常アクセスすると 404 を報告する問題の解決方法

今日、プロジェクトのホームページにアクセスするために Tomcat を設定していたところ、404 エ...

フレームウィンドウ間の関連付けとハイパーリンクのターゲット属性の使用を実装する方法

フレーム ウィンドウの関連付けを実現するには、次に示すように、ハイパーリンクの「ターゲット」ウィンド...

Linux入力サブシステムフレームワーク原理の分析

入力サブシステムフレームワークLinux 入力サブシステムは、上から下に向かって、入力サブシステム ...

Centos7 に yum を使用して MySQL をインストールし、リモート接続を実現する方法

Centos7はyumを使用してMySQLをインストールし、リモート接続を実現する方法です。MySQ...

Docker+nextcloudで個人用クラウドストレージシステムを構築

1. Dockerのインストールと起動 yum で epel-release をインストールします ...

MySql ビュー、トリガー、ストアド プロシージャに関する簡単な説明

ビュービューとは何ですか?ビューの役割は何ですか?ビューは仮想テーブルであり、データ自体を含まない論...

Pagoda Panel のインストール時にサーバーがデータベースにリモート接続できない問題の解決策

自分のウェブサイトを構築する予定なので、618 プロモーションを利用して Tencent Cloud...

nginxはdockerコンテナ内に設定ファイルを自動的に生成します

企業が Docker 自動デプロイメントを構築する場合、Docker の実行時にコンテナ内の設定ファ...

jQueryはショッピングカートの完全な機能を実現します

この記事では、ショッピングカートの完全な機能を実現するためのjQueryの具体的なコードを参考までに...

TypeScript 3.7 で注目すべき 3 つの新機能について簡単に説明します。

目次序文オプションの連鎖ヌル結合呼び出されていない関数のチェック他の序文TypeScript 3.7...

js を使用してファイルが UTF-8 でエンコードされているかどうかを判断する方法

従来の解決策FileReader を使用して UTF-8 形式のファイルを読み取り、ファイルの内容に...

VMware 仮想マシンで Linux の IP アドレスを表示する方法

1. まず、コンピュータのデスクトップにある VMware アイコンをダブルクリックしてソフトウェア...

MySQLでデータベースデータ保存ディレクトリを変更する方法

序文MySQL データベースのデフォルトのデータベース ファイルは /var/lib/mysql に...