Angularルーティングの基礎の詳細な説明

Angularルーティングの基礎の詳細な説明

1. ルーティング関連オブジェクト

Router と RouterLink には、ナビゲーションという同じ機能があります。コントローラーではルーターが使用され、テンプレートでは RouterLink が使用されます。

2. ルーティングオブジェクトの場所

1. ルートオブジェクト

設定はモジュール内にあります。ルートは構成情報のセットから構成され、各構成情報には少なくとも 2 つの属性 (パスとコンポーネント) が含まれます。

2. ルーターアウトレット

テンプレート内

3.ルーターリンク

テンプレート内のリンクを生成し、URLを変更する手順

4. ルーター

コントローラーでは、ルートを切り替えるために Router オブジェクトの navigation メソッドを呼び出します。

5. アクティブルート

ルーティング時に、データは URL を介して渡され、ActivatedRoute オブジェクトに保存されます。

3. ルーティング構成

ng new --routingパラメータを使用すると、追加のapp-routing.module.tsファイルが生成されます。

'@angular/core' から NgModule をインポートします。
'@angular/router' から Routes、RouterModule をインポートします。

const ルート: ルート = [];

@Ngモジュール({
  インポート: [RouterModule.forRoot(routes)],
  エクスポート: [RouterModule]
})
クラス AppRoutingModule をエクスポートします { }

app.module.ts に自動的にインポートされます。

ホーム コンポーネントとコンポーネント コンポーネントの 2 つのコンポーネントを生成します。

const ルート: ルート = [
  {path: '', コンポーネント: HomeComponent}, //パスが空です{path: 'product', コンポーネント: ProductComponent}
];

知らせ:

1. パス設定はスラッシュで始めることはできず、path:'/product' として設定することもできません。

Angular ルーターは URL を解析して生成するため、/ で始まらないことで、複数のビュー間を移動するときに相対パスと絶対パスを自由に使用できます。

2. テンプレートにパスを記述する場合は、/ で始まる必要があります。

スラッシュと . を使用すると、ルート ルート (/) に移動するべきか、サブ ルート (./) に移動するべきかを示すためです。

/ はルート ルートに移動し、ルート ルートが構成されているレイヤーから検索することを意味します。

<a [routerLink]="['/']">ホーム</a>

3. <router-outlet> の下のコンポーネントコンテンツを表示する

4. routerLinkパラメータは文字列ではなく配列です

ルーティング中にパラメータを渡すことができるためです。

4. コード内のRouterオブジェクトをナビゲートする

テンプレートにボタンを追加する

<input type="button" value="製品の詳細" (click)="toProductDetails()">

コントローラー内を移動するには、router.navigate を使用します。

ナビゲート パラメータは、routerLink パラメータと同じように構成されます。

'@angular/core' から Component をインポートします。
'@angular/router' から Router をインポートします。

@成分({
  セレクタ: 'app-root',
  テンプレート URL: './app.component.html',
  スタイル URL: ['./app.component.css']
})
クラスAppComponentをエクスポートします。
  コンストラクター(プライベートルーター:Router){
  }
  製品の詳細(){
    this.router.navigate(['/product']);
  }
}

ボタンをクリックすると、リンクをクリックするのと同じ効果が得られます。

5. 存在しないパスの設定

ページが存在しないことを示すコード 404 コンポーネントを生成します。

最初に一致したルートが優先されるため、** ワイルドカード ルートは最後に配置する必要があります。

const ルート: ルート = [
  { パス: '', コンポーネント: HomeComponent }, // パスは空です { パス: 'product', コンポーネント: ProductComponent },
  { パス: '**'、コンポーネント: Code404Component }
]; 

6. リダイレクトルーティング

アドレスを別の指定されたコンポーネントにリダイレクトします

www.aaa.com => www.aaa.com/products

www.aaa.com/x => www.aaa.com/y ユーザーは x アドレスをブックマークしている可能性があります。

リダイレクトルーティングの使用

const ルート: ルート = [
  { path: '', redirectTo : 'home', pathMatch:'full' }, // パスが空です { path: 'home', component: HomeComponent },
  { パス: 'product'、コンポーネント: ProductComponent },
  { パス: '**'、コンポーネント: Code404Component }
];

7. ルーティング中にデータを渡す

3つの方法があります

1. クエリパラメータでデータを渡す

2. ルーティングパスでデータを渡す

ルーティング パスを定義するときは、パラメータ名を指定し、実際のパスにパラメータを渡す必要があります。

3. ルーティング構成でデータを渡す

以上がAngularルーティングの基本についての詳しい説明です。Angularルーティングの基本についてさらに詳しく知りたい方は、123WORDPRESS.COM内の他の関連記事もぜひご覧ください!

以下もご興味があるかもしれません:
  • Angularルーティングサブルートの詳細な説明
  • Angularルーティングアニメーションと高度なアニメーション機能の詳細な説明
  • ログインページへのジャンプを実現する Angular マルチレベルルーティング (初心者向けチュートリアル)
  • Angularにおけるデフォルトルーティングの使用

<<:  MySQLを定期的にバックアップしてQiniuにアップロードする方法

>>:  Windows CVE-2019-0708 リモート デスクトップ コード実行脆弱性の再現問題

推薦する

MySQL でテーブルを作成するときの NULL と NOT NULL の使用方法の詳細な説明

MySQL の仕様によっては、テーブル作成仕様にすべてのフィールドが空であってはならないという要件を...

ElementUIテーブルのヘッダーアイコンにフローティングプロンプトを追加します。

この記事では主に、ElementUI テーブルのヘッダー アイコンにフローティング プロンプトを追加...

Linux システムで Java 環境変数を設定する方法

Java環境変数を設定するここで、環境変数は etc/profile に設定され、つまり、すべてのユ...

MySQL ストレージ エンジンの基礎

前回の記事では、MySQL トランザクションについて説明しました。これで、MySQL トランザクショ...

Linuxでファイルの作成時間を表示する方法

1. はじめにLinux でファイルの作成時刻が見つかるかどうかは、ファイル システムの種類によって...

JS でタブ効果を書く

この記事の例では、タブ効果を記述するためのJSの具体的なコードを参考までに共有しています。具体的な内...

JavaScript - Vue でのスロットの使用: スロット

目次Vue でのスロットの使用: slotスコープ付きスロット: テンプレートタグで囲む要約するVu...

vscode で Prettier Code プラグインを使用する詳細なチュートリアル

なぜprettierを使うのですか?大企業では、フロントエンド開発コードに独自のコード標準がある場合...

TypeScript のマップされた型とより優れたリテラル型推論について説明します。

目次概要マップされた型を使用して Object.freeze() を構築するマッピングタイプの構文は...

初心者向けWebサイト構築ガイド⑥:FlashFXPの詳しい使い方

今日は、サイトの設定やウェブサイトのアップロードなど、FlashFXP の最も基本的な機能を紹介しま...

純粋な CSS でフォ​​ーム検証を実装するためのサンプル コード

日常業務において、フォームの検証は非常に一般的な設計要件です。ログイン ボックスや登録ボックス、アン...

Docker で lnmp をデプロイする詳細な手順

目次Centosイメージを取得するCentos ベースの nginx コンテナを生成するCentos...

MySQL リンクを表示し、異常なリンクを削除する方法

序文:データベースの運用や保守の際には、リンクの総数がいくつあるか、アクティブなリンクがいくつあるか...

CSS の一部のプロパティの前には「*」または「_」が付きます。

CSS の一部のプロパティの前には「*」または「_」が付きます。さまざまなブラウザを識別する例えば...

JavaScript の継承についてどれくらい知っていますか?

目次序文コンストラクタ、プロトタイプオブジェクト、インスタンスオブジェクトの関係プロトタイプチェーン...