1

新しい角型2アプリケーションの開発を開始しました。公式の角型2形式ガイドに従っています。私のアプリケーションのほとんどは、お互いについて何も知らない一連のモジュール(約10個)から構成されています。その結果、私は遅延ロードを使用し、Angular 2ルータを通してこれらのモジュールにアクセスすることができます。ほとんどすべてのコンポーネントが共有されている場合、角2のディレクトリ構造と混同します

|- app 
| |- +module1 
| | |- module1-list 
| | | |- module1-list.component.html 
| | | |- module1-list.component.ts 
| | |- module1-view 
| | | |- module1-view.component.html 
| | | |- module1-view.component.ts 
| | |- shared 
| | | |- module1.model.ts 
| | | |- module1.service.ts 
| | |- module1-container.component.html 
| | |- module1-container.component.ts 
| |- +module2 
| | |- <same structure with module1> 

上記の図のmoduleX-container.componentコンポーネントは、ルーターが指すページです。 moduleXの他のすべてのコンポーネントが接続されています。

しかし、いくつかのアプリケーションモジュール、fooおよびbarがあり、他のすべてのモジュールのコンポーネントを使用する必要があります。公式のAngular 2スタイルのガイドによると、共有コンポーネントはsharedフォルダの下に配置する必要があります。その結果、私のディレクトリ構造は次のようになり:あなたが見ることができるように

|- app 
| |- +foo (this makes use of all the components under /app/shared/) 
| | |- foo-container.component.html 
| | |- foo-container.component.ts 
| |- +bar (this makes use of all the components under /app/shared/) 
| | |- bar-container.component.html 
| | |- bar-container.component.ts 
| |- +module1 
| | |- module1-container.component.html 
| | |- module1-container.component.ts 
| |- +module2 
| | |- module2-container.component.html 
| | |- module2-container.component.ts 
| |- shared 
| | |- module1 
| | | |- module1-list 
| | | | |- module1-list.component.html 
| | | | |- module1-list.component.ts 
| | | |- module1-view 
| | | | |- module1-view.component.html 
| | | | |- module1-view.component.ts 
| | | |- shared 
| | | | |- module1.model.ts 
| | | | |- module1.service.ts 
| | |- module2 
| | | |- <same structure with module1> 

、現在ではほとんどすべての私のコードはsharedフォルダの下に置かれています。その結果、アプリケーションフォルダ内の遅延ロードされたコンポーネント(+で始まるコンポーネント)は、共有コンポーネントにアクセスするページのワイヤフレームを保持するだけです。それは良い構造ですか?公式のAngular 2スタイルのガイドと互換性があるようですが、同時にsharedフォルダの下に私のコードの95%を持つのはちょっと奇妙です。

EDIT 1:

また、Iはmodule1-view.componentmodule1-list.componentによってロードされた(又は下ネスト)される遅延および非遅延ロードされたコンポーネントを希望します。その結果、私の最初のディレクトリ構造アプローチでは、遅延ロードされた親コンポーネント(+module1)の下にmodule1-view.componentmodule1-list.componentがあるように見えます。

あなたはどう思いますか?それは確かに互換性がありますか、私はスタイルガイドの何かを誤解していますか?

ありがとうございます。

答えて

0

あなたはスタイルガイドを誤解していると思います。共有コンポーネントとディレクティブの下には、実際には、複数の親コンポーネントにネストされたコンポーネントとディレクティブのみが配置されます。私。グリッドコンポーネントのヘッダーコンポーネントと製品リストコンポーネントがある場合は、ヘッダコンポーネントを共有フォルダに配置する必要があります。または、複数の他のコンポーネントにネストされている独立したコンポーネントではない、または「フィーチャーコンポーネント」と呼ばれる類似のコンポーネント。もう1つの例は、さまざまなコンポーネントと共有できるサービスです。 最終的には、構造の目的はコンポーネントを迅速に見つけて見つけることだけであるため、それほど重要ではありません。

+0

返信いただきありがとうございます。私はあなたの意見を見ますが、私はまだ少し混乱しています。私の最初の質問を編集した後、 'module1-list.component'と' module1-view.component'は 'foo-container.component'と' bar-container.component'コンポーネントの中で/で使用されます。また、 'module1-container.component'は、ルータを使用してロードされているため、遅延ロードされたコンポーネント(フォルダ名の' + ')です。しかし、 'module1-list.component'は遅延ロードされたコンポーネントとロードされていないコンポーネントの両方からロードできるはずです。その結果、怠惰に読み込まれたフォルダの下にいるのは間違いです。 – AstrOne

関連する問題