2017-10-17 6 views
0

Angular 2+スタイルのガイドや他の多くの参考文献では、シングルトンであるすべてのAngular Servicesは、ベストプラクティスとしてCoreModule内に配置する必要があることがわかります。Angular 2+では、すべてのサービスをCoreModule内に配置する必要がありますか?

CoreModuleに配置されていない場合は、モジュールが遅延ロードされたときに、子インジェクタでサービスを再実行できます。これは、シングルトンではないサービスがCoreModule内に配置されるべきではないことを意味します。しかし、私はAngularを初めて熟知しており、ほとんどすべてのサービスは今のところシングルトンで作られています。私はサービスがシングルトンで作られていないという具体的な例は考えられません。

CoreModuleに含まれるべきではなく、むしろ別の場所に含まれない非シングルトンサービスは可能ですか?またはサービスは常にシングルトンにする必要がありますかシングルトンでないサービスは可能な場合でも避けるべきですか?

+0

シングルトンの選択は意図的でなければなりません。すべてに適合するルールはありません – pixelbits

答えて

2

シングルトンではないサービスの完全な例があります。

多くのコンポーネントは、共有サービスを使用してルータによって追加された子孫コンポーネント、兄弟コンポーネント、またはコンポーネントと通信します。 ドロップダウンリストの項目と通信する必要があるドロップダウンコンポーネントがある場合は、すべてのドロップダウンインスタンスに対してサービスインスタンスが用意されます。すべてのドロップダウンのための1つの共有サービスはおそらく彼らの行動を混乱させるだろう。

遅延ページで管理ページを使用している場合は、管理ページに固有の機能があり、管理ユーザーがログインしてそのページに移動します。

すべてのユーザーが毎回すべてのモジュールを読み込むわけではない複数のモジュールに分割できるアプリでも同じことが当てはまります。

関連する問題