新しい角型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.component
とmodule1-list.component
によってロードされた(又は下ネスト)される遅延および非遅延ロードされたコンポーネントを希望します。その結果、私の最初のディレクトリ構造アプローチでは、遅延ロードされた親コンポーネント(+module1
)の下にmodule1-view.component
とmodule1-list.component
があるように見えます。
あなたはどう思いますか?それは確かに互換性がありますか、私はスタイルガイドの何かを誤解していますか?
ありがとうございます。
返信いただきありがとうございます。私はあなたの意見を見ますが、私はまだ少し混乱しています。私の最初の質問を編集した後、 'module1-list.component'と' module1-view.component'は 'foo-container.component'と' bar-container.component'コンポーネントの中で/で使用されます。また、 'module1-container.component'は、ルータを使用してロードされているため、遅延ロードされたコンポーネント(フォルダ名の' + ')です。しかし、 'module1-list.component'は遅延ロードされたコンポーネントとロードされていないコンポーネントの両方からロードできるはずです。その結果、怠惰に読み込まれたフォルダの下にいるのは間違いです。 – AstrOne