Angular Dynamic Routing

UnsplashのBrunoKelzerによる写真

この時点で、より動的なアプリケーションを作成するのに非常に役立つ動的コンポーネントについてすでに聞いたことがあるかもしれません。これらを使用すると、ngIfの負荷で肥大化するコンポーネントを作成しなくても、カスタムロジックに応じて実行時にコンポーネントを動的にロードできます。

ダイナミックコンポーネントについてまだ聞いたことがない場合は、AngularConnectのShmuelaJacobsからのこの講演をご覧になることをお勧めします。

私の日常業務では、CRMのようなシステムを構築しており、さまざまな製品を管理しています。これらの製品はすべて共通のコア部分を持っていますが、製品固有のものもあります。コンポーネントをより再利用可能にするために、現在アクティブな製品を指定するInjectionTokenに応じて、正しい製品固有のコンポーネントをロードする動的コンポーネントをあちこちに導入しました。いくつかの一般的なステップだけでなく、いくつかの製品固有のステップも含むステップフローをリファクタリングしようとするまで、すべてが素晴らしく良かったです。ステップフローはコンポーネントベースであるだけでなく、ルートにも依存しているため、これは問題でした。つまり、製品のステップフローには、他のステップとは異なるいくつかの追加のステップ、つまりルートが含まれる可能性があります。ステップ数も変わる可能性があります。

汚い回避策は、step1、step2、step3という名前の固定数のルートを作成し、各ステップでコンポーネントを動的にロードすることですが、ステップ数が異なるため、これは不可能です。適切な解決策は、動的ルーティングを使用することです。

通常、次のようなルーティングモジュールでモジュールのルートを非常に静的に定義します。

モジュールがロードされると、ルートの静的割り当てに干渉する可能性のあるロジックがなくなるため、常にホームルートのみが存在します。

例

あまり意味がないかもしれないが、動的ルーティングがどのように機能するかを示すことを目的とした非常に単純化された例を見てみましょう。

次のルートでアプリケーションを作成します。

  • ホーム(静的)
  • 404見つかりません(静的)
  • 日(動的。午前6時から午後6時までのみ利用可能)
  • 夜(ダイナミック。午後6時から午前6時までのみご利用いただけます)
  • シークレット(ダイナミック; 50/50チャンス)

プロバイダーセクションでルートを定義したので、useFactoryプロバイダー定義オブジェクトを利用できます。そうすれば、ルートがどのように見えるかを決定するロジックを含むファクトリを渡すことができます。

簡単なリマインダー:モジュールを午前5:59にロードし、午前6:01まで待つと、ルート構成が既に行われているため、日ルートは使用できなくなります。これは、ルートを定義するロジックが、モジュールがロードされたときに1回だけ発生することを意味します。

結論

何か新しくて面白いものをお見せできればと思います。Angularに興味がある場合は、Mediumに関する他のブログ投稿を確認してください。

完全な例は私のGitHubで入手できます:

提案された投稿

緩やかな浸食: 人々がキャリアを無駄に浪費する方法を明らかにする

緩やかな浸食: 人々がキャリアを無駄に浪費する方法を明らかにする

今日のペースが速く競争の激しい世界では、個人の成長、経済的安定、そして人生全体の満足度において、個人のキャリアが重要な役割を果たしています。しかし、多くの人は停滞と不満の絶え間ないサイクルに陥っており、職業生活が徐々に消耗していきます。

メディアを再考する: マクチェズニーの 5 つの真実とコミュニケーションの未来

今日の非常につながりの深い世界では、メディア システムは世論の形成、ひいては民主的な意思決定において極めて重要な役割を果たしています。学者のロバート・マクチェズニーは、コミュニケーションの政治経済についての深い分析の中で、従来の通念に疑問を呈し、メディアに関する彼の言うところの「5つの真実」を提示します。

関連記事

ジョーダン・ニーリー殺害と「愛国的」人種差別の問題

米国は、人種差別的な行動と善良な米国人であることを同一視しないという重要な一歩を踏み出すことができるだろうか?

ジョーダン・ニーリー殺害と「愛国的」人種差別の問題

[警告: このエッセイには、ジョーダン ニーリー殺害の犯人を賞賛する人々のスクリーンショットが含まれています。] 法執行当局はついに、そしておそらくはしぶしぶではありましたが、ジョーダン ニーリーを死ぬまで首を絞めた男、ダニエル ペニーをその殺人罪で起訴しました。

アートは政治的ではないのでしょうか?

アートは政治的ではないのでしょうか?

昨日、私たちは今年のユーロビジョン・ソング・コンテストの幕を閉じました。きらびやかでカオスなグランドフィナーレでスウェーデンの歌手ローリーンがトロフィーを持ち帰り、女性として初めて2回優勝し、ABBAがコンテストで優勝してから50年目にその栄冠をスウェーデンに持ち帰りました。 「ワーテルロー」で。彼らはポップ ミュージックの規範において最大のアーティストの 1 つになりました。

Goodreads の読書チャレンジは有毒です

Goodreads の読書チャレンジは有毒です

地元の書店ともう一冊の本を求めて交渉していると、手のかゆみが広がった。この本は、最近購入した残りの本と同様に、私の「読みたい本」(TBR)の山の中でその王座を見つけることになります。それでも、買ってしまいました。

パスワードはもう不要 — パスキーがパスワードをどのように置き換えるか

パスワードはもう不要 — パスキーがパスワードをどのように置き換えるか

曖昧さを避けるために、次の用語が使用されます。認証者; ログイン Web サイトの作成に使用されている携帯電話。ユーザーがログイン要求サービスを行うために使用している Web サイトまたはアプリケーション。特定のサービスを提供するベンダー。例: