Angular ルーティングにおける navigateByUrl と navigate の違いと共通点の簡単な分析
この記事では、Angular ルーティングの navigateByUrl と navigate を比較し、その違いと共通点を確認します。
angular navigateByUrl と navigate ルート ジャンプ
import { Router, ActivatedRoute } from '@angular/router'; export class xxx{ constructor(private router: Router, private route: ActivatedRoute){} }
[関連チュートリアルの推奨事項: "angular チュートリアル" ]
1. 相違点
1.1 navigateByUrl()
navigateByUrl(url: string | UrlTree, extras: NavigationExtras = { skipLocationChange: false }): Promise<boolean>
最初のパラメータは == 絶対パス == の文字列である必要があります。
this.router.navigateByUrl('/home');
受け取った最初のパラメータは異なりますが、2 番目のパラメータは同じです。
1.2 navigate()
navigate(commands: any[], extras: NavigationExtras = { skipLocationChange: false }): Promise<boolean>
最初のパラメータは配列です
this.router.navigate(['home', 'demo'])
その後、解析されたルートは次のようになりますローカルホスト:4200/home/demo
。
現在のルートを基準にして移動できます。
relativeTo
パラメーターを渡すと、受信ルートを基準にしてジャンプできます。たとえば、現在 localhost:4200/home
にある場合、
this.router.navigate(['demo'], {relativeTo: this.route})
がジャンプした後のアドレスは localhost:4200/home/demo
です。
ただし、'demo'
が '/demo'
と記述されている場合、受信ルートは機能せず、ルート ルートがナビゲーションに使用されます。渡されない場合、ルート ルート (localhost:4200) がデフォルトでナビゲーションに使用されます。
2. 共通点:
interface NavigationExtras { relativeTo?: ActivatedRoute | null queryParams?: Params | null fragment?: string preserveQueryParams?: boolean queryParamsHandling?: QueryParamsHandling | null preserveFragment?: boolean skipLocationChange?: boolean replaceUrl?: boolean state?: {...} }
2.1 パラメータの受け渡し方法は同じです
ナビゲーションを例に挙げます
queryParams を介してパラメータを渡す
パラメータを渡すこの方法では、localhost:4200/demo?id=1
##A コンポーネントはパラメータを渡します
this.router.navigate(['demo'], {queryParams: {id: 1} , relativeTo: this.route})
B コンポーネントはパラメータを受け取ります
- /user/:id# を介して渡された場合##、使用
activatedRoute.params
import { ActivatedRoute } from '@angular/router'; constructor(private activatedRoute: ActivatedRoute) { this.activatedRoute.params.subscribe((param) => { console.log('组件里面的param', param);// {id :1} }); }
ログイン後にコピー
- /user?id=1
- を介して渡された場合、
activatedRoute.queryParams# を使用します
##<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>import { ActivatedRoute } from &#39;@angular/router&#39;; constructor(private activatedRoute: ActivatedRoute) { this.activatedRoute.queryParams.subscribe((param) => { console.log(&#39;组件里面的queryParams&#39;, param); // {id :1} }); }</pre><div class="contentsignin">ログイン後にコピー</div></div>
状態を介したパラメータの受け渡し
import { Component, Input } from '@angular/core'; import { Router, NavigationExtras } from '@angular/router'; @Component({ selector: 'a-component', template: ` <button (click)="test()">Test</button> `, }) export class AComponent { constructor(private router: Router){} test(){ const navigationExtras: NavigationExtras = {state: {id: 1}}; this.router.navigate(['b'], navigationExtras); } }
B コンポーネントはパラメータを受け取ります
import { Component } from '@angular/core'; import { Router } from '@angular/router'; @Component({ selector: 'b-component' }) export class BComponent { constructor(private router: Router) { const navigation = this.router.getCurrentNavigation(); const state = navigation.extras.state as {id: number}; // state.id 就是传过来的数据 } }
2.2 両方ともコールバックがあります プログラミング入門 以上がAngular ルーティングにおける navigateByUrl と navigate の違いと共通点の簡単な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。 this.router.navigate(['demo']).then(nav => {
console.log(nav); // true: 跳转成功, false 跳转失败
}, err => {
console.log(err) // 发生无措
});
プログラミング関連の知識については、こちらをご覧ください:

ホット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)

ホットトピック









Angular.js は、動的アプリケーションを作成するための無料でアクセスできる JavaScript プラットフォームです。 HTML の構文をテンプレート言語として拡張することで、アプリケーションのさまざまな側面を迅速かつ明確に表現できます。 Angular.js は、コードの作成、更新、テストに役立つさまざまなツールを提供します。さらに、ルーティングやフォーム管理などの多くの機能も提供します。このガイドでは、Ubuntu24 に Angular をインストールする方法について説明します。まず、Node.js をインストールする必要があります。 Node.js は、ChromeV8 エンジンに基づく JavaScript 実行環境で、サーバー側で JavaScript コードを実行できます。ウブにいるために

Slim フレームワークで API ルーティングを実装する方法 Slim は、Web アプリケーションを構築するためのシンプルかつ柔軟な方法を提供する軽量の PHP マイクロフレームワークです。主な機能の 1 つは API ルーティングの実装で、これにより、さまざまなリクエストを対応するハンドラーにマッピングできるようになります。この記事では、Slim フレームワークで API ルーティングを実装する方法を紹介し、いくつかのコード例を示します。まず、Slim フレームワークをインストールする必要があります。 Slim の最新バージョンは Composer を通じてインストールできます。ターミナルを開いて、

Apache Camel は、異種のアプリケーション、サービス、データ ソースを簡単に統合して、複雑なビジネス プロセスを自動化できる Enterprise Service Bus (ESB) ベースの統合フレームワークです。 ApacheCamel はルートベースの構成を使用して、統合プロセスを簡単に定義および管理します。 ApacheCamel の主な機能は次のとおりです。 柔軟性: ApacheCamel は、さまざまなアプリケーション、サービス、データ ソースと簡単に統合できます。 HTTP、JMS、SOAP、FTP などの複数のプロトコルをサポートします。効率: ApacheCamel は非常に効率的で、大量のメッセージを処理できます。非同期メッセージング メカニズムを使用しているため、パフォーマンスが向上します。拡張可能

Angular フレームワークのコンポーネントのデフォルトの表示動作は、ブロックレベルの要素ではありません。この設計の選択により、コンポーネント スタイルのカプセル化が促進され、開発者が各コンポーネントの表示方法を意識的に定義することが促進されます。 CSS プロパティの表示を明示的に設定することで、Angular コンポーネントの表示を完全に制御して、目的のレイアウトと応答性を実現できます。

認証は、Web アプリケーションの最も重要な部分の 1 つです。このチュートリアルでは、トークンベースの認証システムと、それが従来のログイン システムとどのように異なるかについて説明します。このチュートリアルを終えると、Angular と Node.js で書かれた完全に動作するデモが表示されます。従来の認証システム トークンベースの認証システムに進む前に、従来の認証システムを見てみましょう。ユーザーはログイン フォームにユーザー名とパスワードを入力し、[ログイン] をクリックします。リクエストを行った後、データベースにクエリを実行してバックエンドでユーザーを認証します。リクエストが有効な場合、データベースから取得したユーザー情報を使用してセッションが作成され、セッション情報が応答ヘッダーで返され、セッション ID がブラウザに保存されます。対象となるアプリケーションへのアクセスを提供します。

ThinkPHP6 は、URL ルーティング設定を簡単に実装できる便利なルーティング機能を備えた強力な PHP フレームワークであり、同時に GET、POST、PUT、DELETE などのさまざまなルーティング モードもサポートしています。この記事では、ThinkPHP6 を使用してルーティング設定を行う方法を紹介します。 1. ThinkPHP6 ルーティングモードの GET メソッド: GET メソッドはデータを取得するためのメソッドであり、ページの表示によく使用されます。 ThinkPHP6 では、次のものが使用できます。

ルーティングを使用して Vue プロジェクトでページ切り替えアニメーション効果をカスタマイズするにはどうすればよいですか?はじめに: Vue プロジェクトでは、ルーティングはよく使用する機能の 1 つです。ページ間の切り替えはルーティングを通じて実現でき、優れたユーザー エクスペリエンスを提供します。ページの切り替えをより鮮やかにするには、アニメーション効果をカスタマイズすることで実現できます。この記事では、ルーティングを使用して Vue プロジェクトでページ切り替えアニメーション効果をカスタマイズする方法を紹介します。 Vue プロジェクトの作成 まず、Vue プロジェクトを作成する必要があります。 VueCLI を使用して迅速にビルドできます

ルーティングを使用して Vue でページ ジャンプを実装するにはどうすればよいですか?フロントエンド開発テクノロジーの継続的な開発により、Vue.js は最も人気のあるフロントエンド フレームワークの 1 つになりました。 Vue 開発において、ページジャンプは重要な部分です。 Vue はアプリケーションのルーティングを管理するための VueRouter を提供しており、ルーティングを通じてページ間のシームレスな切り替えを実現できます。この記事では、ルーティングを使用して Vue でページ ジャンプを実装する方法をコード例とともに紹介します。まず、Vue プロジェクトに vue-router プラグインをインストールします。
