Vue.js での動的ルーティングの例の詳細な説明
vue-routerを使用してシンプルなナビゲーション機能を完成させる記事で実装されたルートナビゲーション機能はパラメータを渡すことができないため、静的ルートになります。パラメータを渡すことができるルーティングモードは、パラメータを渡すことができるため、対応する経路の数が不定であるため、ダイナミックルーティングと呼ばれます。
では、パラメーターをルートとして使用するにはどうすればよいでしょうか?
パラメータ名の前に
:
を追加し、ルートのpath
にパラメータを書き込みます:
,然后将参数写在路由的path
内
如下示例:
routes: [ //将页面组件与path指令的路由关联 { name: 'BookInfo', path: '/books/:id', component: BookInfo } ]
这样定义之后,vue-router
就会匹配所有的:/books/1,/books/2,/books/3 ……
,所以说这样定义的路由的数量是不确定的。
在<router-link>
我们加入一个 params
<li> <router-link :to ="{name:'BookInfo',params :{id:1}}" > <p>首页</p> </router-link> </li>
vue-router
は、/books/1,/books/2,/books/3...
のすべてに一致するため、定義されているルートの数はこの方法は明確ではありません。
<router-link>
に、params
属性を追加して、特定のパラメータ値を指定します<p>当前图书编号是:{{$route.params.id}}</p>ログイン後にコピーログイン後にコピーログイン後にコピーpath: '/books/version/:id'
,则对应params
为:params :{id:1,version:1}
那么现在就面临这一个问题 —— 如何从路由中将这个参数值读取出来呢?
答:通过 $route.params
这个属性获取指定的参数值,如:this.$route.params.id
,this.$route.params.msg
如果希望在相应的组件页面内输出参数值,对应代码如下:
export default { name: "app", created() { alert(this.$route.params.id); }};
如果想在js
代码中根据参数值做相应的处理,则在默认路由中加入如下代码:
<script> export default { name: "app", watch :{ '$route' (to,from){ alert(to.params.id); } } }; </script>
当使用路由参数的时候,如 从
/books/1
到/books/2
上記のリンクは、http://localhost: 8080 に対応します。 /__dirname/books/1
複数のパラメータ値を渡す必要がある場合は、上記の命名方法に従ってパラメータを追加し、対応する宣言されたパラメータ値を params に渡すだけで済みます。定義は自動的にパラメータを分解して値を取得しますcreated mounted
等钩子函数在页面第二次加载的时候回失效。
那么,当复用组件时候,想对路由参数的变化做出响应的话,就需要在 $watch
对象内添加对 $route
对象变化的跟踪函数
{ name: 'BookInfo', path: '/books/:id/?bookName=Lost', component: BookInfo }
$route.params
定义的参数必然是整个路由的其中一部分,vue-router
还可以让我们使用"/path?param = value"
的方式传递参数,可以使用$route.query.参数名
获取参数值vue-router
还提供一种常量参数定义meta
,我们可以在路由定义中先定义meta
的值,然后在路由实例中通过$route.meta
参数获取具体常量值。
如下代码($route.query.参数名
)
{ name: 'BookInfo', path: '/books/:id', component: BookInfo ,meta: { bookName : 'Lost In River' }}
获取其中 bookName
的值的代码为 this.$route.query.msg
如下代码($route.meta.参数名
)
routes: [ //将页面组件与path指令的路由关联 { name: 'BookInfo', path: '/books/:id', component: BookInfo } ]
获取其中 bookName
的值的代码为 this.$route.meta.bookName
在文章 使用vue-router完成简单导航功能 中实现的路由导航功能是不能传递参数的,也就是说是静态路由。
而能传递参数的路由模式,由于可以传递参数,所以其对应的路由数量是不确定的,故称之为 动态路由
那么如何将参数作为路由呢?
在参数名前面加上
:
,然后将参数写在路由的path
内
如下示例:
<li> <router-link :to ="{name:'BookInfo',params :{id:1}}" > <p>首页</p> </router-link> </li>
这样定义之后,vue-router
就会匹配所有的:/books/1,/books/2,/books/3 ……
,所以说这样定义的路由的数量是不确定的。
在<router-link>
我们加入一个 params
たとえば、path: '/books/version/:id'
の場合、対応する params
は次のようになります: params:{id:1,version:1}< /code> </p></blockquote><hr/><p> さて、ここで私たちはこの問題に直面しています - このパラメータ値をルートからどのように読み取るか? </p>回答: <code>$route.params
属性を通じて、指定されたパラメータ値を取得します (this.$route.params.id
、this.$route など)。 params .msg
対応するコンポーネントページにパラメータ値を出力したい場合、対応するコードは以下の通りです:
<p>当前图书编号是:{{$route.params.id}}</p>ログイン後にコピーログイン後にコピーログイン後にコピーpath: '/books/version/:id'
,则对应params
为:params :{id:1,version:1}
那么现在就面临这一个问题 —— 如何从路由中将这个参数值读取出来呢?
答:通过 $route.params
这个属性获取指定的参数值,如:this.$route.params.id
,this.$route.params.msg
js
コードを入力し、次のコードをデフォルト ルートに追加します:
export default { name: "app", created() { alert(this.$route.params.id); }};
/books/1
から /books/2 などのルート パラメーターを使用する場合
では、両方のルートが同じコンポーネントをレンダリングするため、元のコンポーネント インスタンスは再利用され、再利用の販売率はコンポーネントを破棄して再作成するよりも高くなります。 🎜
これは、コンポーネントのライフサイクル フックが呼び出されなくなることを意味します (コンポーネントは破棄されてから作成されません)。つまり、created Mounted
とその他のフック関数は、ページがロードされるときに無効になります。 2回目。 🎜🎜🎜 したがって、コンポーネントを再利用するときに、ルーティング パラメータの変更に対応したい場合は、$watch
オブジェクト内に $route</code を追加する必要があります。オブジェクトの変更の追跡機能 🎜🎜<div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'><script>
export default { name: "app",
watch :{
&#39;$route&#39; (to,from){
alert(to.params.id);
}
}
};
</script></pre><div class="contentsignin">ログイン後にコピー</div></div><div class="contentsignin">ログイン後にコピー</div></div><div class="contentsignin">ログイン後にコピー</div></div><hr/>🎜🎜<code>$route.params
定義されたパラメータはルート全体の一部である必要があります。vue-router
は、 "/path?param = value"
を使用してパラメータを渡します。$route.query.parameter name
を使用してパラメータ値を取得できます🎜vue-router< / code> は定数パラメータ定義 <code>meta
も提供します。まずルート定義で meta
の値を定義し、次に $route.meta を渡すことができます。ルーティング インスタンス。
パラメータは特定の定数値を取得します。 🎜🎜以下のコード($route.query.パラメータ名
)🎜{ name: 'BookInfo', path: '/books/:id/?bookName=Lost', component: BookInfo }
bookName
の値を取得するコードはthis.$です。 Route.query.msg
🎜🎜以下のコード($route.meta.parameter name
)🎜{ name: 'BookInfo', path: '/books/:id', component: BookInfo ,meta: { bookName : 'Lost In River' }}
bookName
の値を取得するコードは< code>this.$route.meta.bookName🎜🎜 vue-router を使用してシンプルなナビゲーション関数を完成するという記事で実装されたルート ナビゲーション関数はパラメーターを渡すことができません。つまり、静的ルートです。 🎜🎜パラメータを渡すことができるルーティングモード、パラメータを渡すことができるため、対応するルートの数が不確実であるため、🎜ダイナミックルーティングと呼ばれます🎜🎜🎜では、パラメータをルートとして使用するにはどうすればよいでしょうか? 🎜🎜🎜パラメータ名の前に :
を追加し、ルートの path
にパラメータを書き込みます 🎜🎜次の例: 🎜rrreee🎜この定義の後、vue-router
は、/books/1,/books/2,/books/3...
のすべてに一致するため、定義されているルートの数はこの方法は明確ではありません。 🎜🎜 <router-link>
に、params
属性を追加して、特定のパラメータ値を指定します🎜rrreee🎜上記のリンクは、http://localhost: 8080 に対応します。 /__dirname/books/1🎜🎜🎜 複数のパラメータ値を渡す必要がある場合は、上記の命名方法に従ってパラメータを追加し、対応する宣言されたパラメータ値を params に渡すだけで済みます。定義は自動的にパラメータを分解して値を取得します🎜
たとえば、path: '/books/version/:id'
の場合、対応する params
は次のようになります: params:{id:1,version:1}< /code> 🎜</blockquote><hr/>🎜 さて、ここで私たちはこの問題に直面しています - このパラメータ値をルートからどのように読み取るか? 🎜回答: <code>$route.params
属性を通じて、指定されたパラメータ値を取得します (this.$route.params.id
、this.$route など)。 params .msg
🎜🎜対応するコンポーネントページにパラメータ値を出力したい場合、対応するコードは次のとおりです: 🎜<p>当前图书编号是:{{$route.params.id}}</p>
如果想在js
代码中根据参数值做相应的处理,则在默认路由中加入如下代码:
export default { name: "app", created() { alert(this.$route.params.id); }};
当使用路由参数的时候,如 从
/books/1
到/books/2
,原来的组件实例会被复用,因为两个路由都渲染同一个组件,比起销毁后再创建,复用的销率会更高。
这也就是说 组件的生命周期钩子不会再被调用(组件没有被销毁后再创建) ,即created mounted
等钩子函数在页面第二次加载的时候回失效。
那么,当复用组件时候,想对路由参数的变化做出响应的话,就需要在 $watch
对象内添加对 $route
对象变化的跟踪函数
<script> export default { name: "app", watch :{ '$route' (to,from){ alert(to.params.id); } } }; </script>
$route.params
定义的参数必然是整个路由的其中一部分,vue-router
还可以让我们使用"/path?param = value"
的方式传递参数,可以使用$route.query.参数名
获取参数值vue-router
还提供一种常量参数定义meta
,我们可以在路由定义中先定义meta
的值,然后在路由实例中通过$route.meta
参数获取具体常量值。
如下代码($route.query.参数名
)
{ name: 'BookInfo', path: '/books/:id/?bookName=Lost', component: BookInfo }
获取其中 bookName
的值的代码为 this.$route.query.msg
如下代码($route.meta.参数名
)
{ name: 'BookInfo', path: '/books/:id', component: BookInfo ,meta: { bookName : 'Lost In River' }}
获取其中 bookName
的值的代码为 this.$route.meta.bookName
相关推荐:
以上がVue.js での動的ルーティングの例の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 はじめに: 技術の継続的な発展により、音声認識技術は人工知能の分野の重要な部分になりました。 WebSocket と JavaScript をベースとしたオンライン音声認識システムは、低遅延、リアルタイム、クロスプラットフォームという特徴があり、広く使用されるソリューションとなっています。この記事では、WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法を紹介します。

WebSocketとJavaScript:リアルタイム監視システムを実現するためのキーテクノロジー はじめに: インターネット技術の急速な発展に伴い、リアルタイム監視システムは様々な分野で広く利用されています。リアルタイム監視を実現するための重要なテクノロジーの 1 つは、WebSocket と JavaScript の組み合わせです。この記事では、リアルタイム監視システムにおける WebSocket と JavaScript のアプリケーションを紹介し、コード例を示し、その実装原理を詳しく説明します。 1.WebSocketテクノロジー

JavaScript と WebSocket を使用してリアルタイム オンライン注文システムを実装する方法の紹介: インターネットの普及とテクノロジーの進歩に伴い、ますます多くのレストランがオンライン注文サービスを提供し始めています。リアルタイムのオンライン注文システムを実装するには、JavaScript と WebSocket テクノロジを使用できます。 WebSocket は、TCP プロトコルをベースとした全二重通信プロトコルで、クライアントとサーバー間のリアルタイム双方向通信を実現します。リアルタイムオンラインオーダーシステムにおいて、ユーザーが料理を選択して注文するとき

JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 はじめに: 今日、天気予報の精度は日常生活と意思決定にとって非常に重要です。テクノロジーの発展に伴い、リアルタイムで気象データを取得することで、より正確で信頼性の高い天気予報を提供できるようになりました。この記事では、JavaScript と WebSocket テクノロジを使用して効率的なリアルタイム天気予報システムを構築する方法を学びます。この記事では、具体的なコード例を通じて実装プロセスを説明します。私たちは

JavaScript チュートリアル: HTTP ステータス コードを取得する方法、特定のコード例が必要です 序文: Web 開発では、サーバーとのデータ対話が頻繁に発生します。サーバーと通信するとき、多くの場合、返された HTTP ステータス コードを取得して操作が成功したかどうかを判断し、さまざまなステータス コードに基づいて対応する処理を実行する必要があります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法を説明し、いくつかの実用的なコード例を示します。 XMLHttpRequestの使用

Golang は、さまざまなアプリケーションやサービスの開発に使用できる強力で効率的なプログラミング言語です。 Golang では、ポインタは非常に重要な概念であり、データをより柔軟かつ効率的に操作するのに役立ちます。ポインタ変換とは、異なる型間のポインタ操作のプロセスを指します。この記事では、具体的な例を使用して、Golang におけるポインタ変換のベスト プラクティスを学びます。 1. 基本概念 Golang では、各変数にはアドレスがあり、アドレスはメモリ内の変数の位置です。

JavaScript で HTTP ステータス コードを取得する方法の紹介: フロントエンド開発では、バックエンド インターフェイスとの対話を処理する必要があることが多く、HTTP ステータス コードはその非常に重要な部分です。 HTTP ステータス コードを理解して取得すると、インターフェイスから返されたデータをより適切に処理できるようになります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法と、具体的なコード例を紹介します。 1. HTTP ステータス コードとは何ですか? HTTP ステータス コードとは、ブラウザがサーバーへのリクエストを開始したときに、サービスが

Oracle インスタンスの数とデータベースのパフォーマンスの関係 Oracle データベースは、業界でよく知られたリレーショナル データベース管理システムの 1 つであり、エンタープライズ レベルのデータ ストレージと管理で広く使用されています。 Oracle データベースでは、インスタンスは非常に重要な概念です。インスタンスとは、メモリー内のOracleデータベースの実行環境を指します。各インスタンスには独立したメモリー構造とバックグラウンド・プロセスがあり、ユーザー・リクエストの処理とデータベース操作の管理に使用されます。インスタンスの数は、Oracle データベースのパフォーマンスと安定性に重要な影響を与えます。
