2017-11-19 34 views
0

私は、より小さなコンポーネントで@observerを使用することがパフォーマンスに良いことを知っています。 @injectをできるだけ多くのコンポーネントで使用することも合理的ですか?明らかに、このようにして、親コンポーネントを通過するよりも、使用された小道具にアクセスする方が簡単です。同時に、プレゼンテーションコンポーネントを作成することも困難になります。ほぼすべてのコンポーネントがMobxの店舗に直接接続されています。しかし、@injectを使わなくても、コンポーネントは引き続き@ observerを使用します。mobx-reactで@injectを使用するベストプラクティス?

だから私の質問は以下のとおりです。

  1. Mobxでプレゼンテーションコンポーネントを作成する方法?あるいは、Mobxのプレゼンテーションコンポーネントが必要ないかもしれません。

  2. @injectを使用するベストプラクティスは何ですか?または@injectでどのコンポーネントを使用するのが妥当ですか?

何か提案があります。

答えて

1

Question1:

あなたはプレゼンテーションコンポーネントをReduxのと同じ方法で作成します。これらのコンポーネントには外部からの小道具を渡し、@ observerだけを使用してください。

プレゼンテーションコンポーネントを使用する必要はありません。 Reduxでさえ、必要はありません。それは、あなたのアーキテクチャー目標/非機能要件にどのように到達できるかによって異なります。

@ observerなしでプレゼンテーションコンポーネントが必要かどうかを知り、決定する必要があります。これは、たとえば、mobxを使用しないアプリケーションでプレゼンテーションコンポーネントを再利用したい場合です。 @ observerを使ってすべてのコンポーネントに注釈を付けると問題に遭遇します。

Question2:

使用@Injectと@Observerコンテナコンポーネントにだけだけ@Observerでアノテートされているあなたのプレゼンテーションコンポーネントまで小道具を渡します。

+0

'@event'を' @ observer'のようにできるだけ多く使用すると、それにはいくつか問題があると思いますか?ただし、これらのコンポーネントを再利用することは困難です。 –

+0

これは、ラップされたコンポーネントにその小道具(店舗)を渡す注釈付きコンポーネントの周りを包み込む追加コンポーネントです。パフォーマンス上の問題でしょうか?多分。しかし、後で遅い部分を最適化してください。 – Daniel

関連する問題