私は現在、角度2のCRUDコンポーネントを開発中です。これまでオンラインで見つかったすべての例では、コンポーネント内にHttp
サービスがあります。つまり、リソースを作成するコンポーネント(ResourceCreate
と呼ぶ)には、Http
クラスを使用してリモートサーバー上のリソースを作成するコードが含まれています。同様に、すべてのリソース(ResourceList
と呼ぶ)を含むリストを表示しているコンポーネントには、Http
クラスを使用してサーバーからリソースのリストをフェッチするコードが含まれています。 を使用して、サーバーにはまだ存在しないがクライアント上で一時的に生成されたリソースの一覧をレンダリングしない限り、これはうまくいきます。もう1つの例はリソース情報を入力するだけですが、サーバー上ではなくローカルに保存するためにResourceCreate
を使用することです。上記の2つのケースでは、コンポーネント内にHttp
サービスを持つことは冗長です。角度2のCRUDコンポーネントとは別のアプローチ
したがって、これらのコンポーネントのための私の考えは以下の通りです:
- 親コンポーネントを作成し、すべてのCRUDのサブコンポーネント(例えば、
ResourceCreate
、ResourceList
)を添付してください。 Http
を使用してデータを送信または受信する代わりに、親コンポーネントにデータをInput()s
に渡すか、CRUDサブコンポーネントのイベントを受信します(Output()
)。たとえば、親コンポーネントにHttp
要求を実行してリソースリストを取得し、そのリストをResourcetList
コンポーネントに渡すようにします。もう1つの例は、ResourceCreate
コンポーネントがリソース記述とともにsubmit
イベントを放出することです。このイベントは親コンポーネントによってキャッチされ、親コンポーネントはこれをサーバーに送信します。
このアプローチを使用することによって、CRUDコンポーネントはリソースの格納について何も知らない。したがって、私たちのリソースがローカルにある場合、またはファイル内にある場合、変更する必要があるのは親コンポーネントだけでCRUDコンポーネント自体ではありません。これはCRUDコンポーネントをより再利用可能にします。
このアプローチでは欠点があるかどうかを理解しようとしています。なぜ私がインターネット上で見つけたCRUDの例のどれもがこのアプローチを使用するのではなく、むしろHttp
サービスをCRUDコンポーネントの中に埋め込むのですか?何か案は?
ありがとうございます。
サービスのサウンドを変更する方が良いと思います。どうもありがとう! – AstrOne