ブログに戻る

Angular RouterでのRouterLink、Navigate、およびNavigateByUrlによるナビゲーション

Angular RouterでのRouterLink、Navigate、およびNavigateByUrlによるナビゲーション

はじめに

Angular アプリケーションは、最近非常に一般的です。これらは、Single Page Applications (SPA) の概念に基づいて構築されています。このようなアプリケーションでは、コンポーネントが使用されるため、ウェブページ間のルーティングは従来のウェブサイトとは異なります。Angularでは、アプリケーション全体をルーティングするためのナビゲーションに RouterLink を使用する必要があります。RouterLinkはディレクティブであり、コンポーネントクラス間でナビゲートするための Router.navigate および Router.navigateByURL メソッドを提供します。

このチュートリアルでは、以下の RouterLink, Router.navigate, および Router.navigateByURL について、コードの 例とともに見ていきます。.

RouterLink

HTMLでは、通常、以下のようにアンカータグ <a> を使用してリンクを挿入します。

この例のリンクは、ユーザーを /sample ページに遷移させます。しかし、上述のように、シングルページアプリケーション(SPA)にはリンク先となる異なるページが存在しません。代わりに、ユーザーに表示する異なるビューやコンポーネントが存在します。

ユーザーがナビゲートしてビューを変更できるようにする必要がある場合は、 RouterLink ディレクティブを href:

この RouterLink の例は、ユーザーを /users/example にあるコンポーネントに導きます。次の例のように、異なるURLセグメントを配列で渡すこともできます。

これら2つの例はフォーマットが異なりますが、宛先は同じ /users/example のコンポーネントになります。.

  • 相対パス

RouterLinkでは相対URLを指定できます。また、 ../ を使用して、ナビゲーションのより上位のレベルに移動できます。これを実現する方法は以下の通りです。

上記の例では、ユーザーが /users/posts にいる場合、ナビゲーションによって /posts/parent に移動します。。また、 ./, ../ を使用して相対的にURLを指定したり、必要に応じて先頭のスラッシュを省略したりすることもできます。

  • パラメーター

ルート間でデータを渡す必要があるシナリオが考えられます。簡単な例としては、ユーザーがフォームに入力し、詳細を入力するためにフォームの次の部分に遷移させる場合などです。

パラメーターを渡すには、データをカプセル化したオブジェクトをURLセグメントのリストに渡します。

上記では、 Router/users;display=sample/xyz に遷移します。.

  • 名前付きアウトレット

名前付きルーターアウトレットは、単に名前が付いたルーターアウトレットのことです。これに関するコードを見てみましょう。

この例では、 xyz セグメントは side という名前のアウトレットに配置されます。以下のように、複数の名前付きアウトレットを指定することもできます。

これにより、 first セグメントが abc に置き換わり、 second セグメントが xyz に置き換わります。.

Router

Angularでは、 Router クラスは、ルートを定義し、それらの間を遷移するために使用されます。これは、次の2つのメソッドによって実現されます: Router.navigateRouter.navigateByUrl です。これら両方のメソッドは Promise を返します。この Promise は次の3つの値を持つことができます: true, false、または null.

  • 値は、 true のとき、遷移が成功したことを示します。

  • 値は、 null のとき、遷移が行われなかったことを示します。

  • そして、 false のとき、何らかの理由で遷移が失敗したことを示します。

アプリケーションでこれらのメソッドを使用できるようにするには、まずコンポーネントクラスに Router クラスをインポートする必要があります:

次に、この Router をコンストラクタの依存関係に注入する必要があります:

この設定により、アプリケーションで Router.navigate および Router.navigateByUrl メソッドを使用する準備が整いました。

Router.navigate

The Router.navigate メソッドは、URLセグメントの配列を受け取ります。基本的な Router.navigate コードの例を見てみましょう:

Router.navigateByUrl

最後に、 Router.navigateByUrl について見てみましょう。このメソッドは Router.navigate に似ていますが、URLセグメントを受け取る代わりに、URLを指定する文字列を受け取ります。この遷移は絶対パスである必要があり、先頭に / が必要です:

上記のコードは、ユーザーを /users;all=true ページに遷移させます。

まとめ

このチュートリアルでは、RouterLinkを使用してAngularアプリを遷移する方法について説明しました。Angularアプリのルーティングは、シングルページアプリケーション(SPA)であるため、従来のWebアプリケーションとは少し異なります。RouterLinkとその機能を理解することは、開発者が堅牢なルーティングを構築するのに役立ちます。

Angularアプリは、ランタイムとして Node.js を使用します。Node.jsの詳細や、Node.jsアプリケーションのデプロイ方法について詳しく知りたい場合は、以下のチュートリアルを参照してください:

Happy Computing!

author

Hark Labs

著者 · CloudSigma

Preslav DobrevはCloudSigmaのクリエイティブデザイナーであり、従来型および革新的なマーケティングチャネルを活用した一貫性のあるビジネスアイデンティティに注力しています。彼は芸術的なビジョンと戦略的マーケティングを融合させ、インパクトのあるブランドナラティブを生み出すことに長けています。

コメント

コメントはまだありません。最初のコメントを投稿しましょう。