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 リモート デスクトップ コード実行脆弱性の再現問題

推薦する

vue3+vite プロジェクトで svg を使用する方法の詳細なグラフィック説明

今日、vue3+viteプロジェクトの実践で、svgを使用する場合、以前の記述方法が使用できないこと...

MySQL 8.0.14 のインストールと設定方法のグラフィックチュートリアル

この記事では、MySQL 8.0.14のインストールと設定のプロセスを記録しています。具体的な内容は...

JavaScript イベント委任 (プロキシ) の使用例の詳細

目次導入例: イベントの委任記述方法1: イベント委譲書き方2: 各子要素がイベントをバインドする例...

JavaScript 初心者のための二分探索木アルゴリズムのチュートリアル

目次バイナリ検索木 (BST) とは何ですか?バイナリツリーの基本的な走査(インオーダー、ポストオー...

ウェブページ要素の完全な分析

相対的な長さの単位それら説明: 相対的な長さの単位。現在のオブジェクト内のテキストのフォント サイズ...

uniappの無痛トークンリフレッシュ方法の詳細な説明

フロントエンドがインターフェースを要求すると、バックエンドでインターフェースが定義されます。ステータ...

win10 での mysql 8.0.16 winx64 インストールの最新グラフィック チュートリアル

このデータベースをダウンロードするには、多くの時間とトラフィックがかかります。踏み込んだ落とし穴で時...

Angularコンポーネントライフサイクルの詳細説明(I)

目次概要1. フックの呼び出し順序2. onChangesフック3. 変更検出メカニズムとDoChe...

MySQLリモート接続失敗の解決策

以前、MySQLがローカルでは接続できるのにリモートでは接続できないという問題に遭遇したことがありま...

JavaScript が Jingdong の虫眼鏡効果を模倣

この記事では、Jingdongの虫眼鏡効果を実現するためのJavaScriptの具体的なコードを紹介...

React コンポーネント通信ルーティングパラメータ転送 (react-router-dom)

目次最近Reactを勉強していて、今は仕事でVueを使っています。学習の過程で、両者を比較して理解を...

MySQL DEFINER の使用方法の詳細な説明

目次序文: 1.DEFINERの簡単な紹介2. いくつかの注意点要約:序文: MySQL データベー...

my.cnf (my.ini) 重要なパラメータの最適化設定手順

MyISAM ストレージエンジンMyISAM ストレージ エンジンは、書き込みよりも読み取りが多く、...