2016-06-13 2 views
1

コンポーネントデータを親コンポーネントから渡す必要がありますか?または、コンポーネントクエリによって、データがコンポーネントに直接流れることができますか?Om Nextのコンポーネントレンダリング関数へのデータフローはどのようになりますか?

コンポーネントが必要とするデータをクエリがどのように宣言するかを確認できます。親コンポーネントは子コンポーネントのクエリを調べて、渡すデータを調べなければなりませんか?多くの例で、親コンポーネントに(om/get-query ChildComponentClass)のようなものがありますか?

答えて

1

はい。ルートコンポーネントは特別です。すべてのデータをルートコンポーネントに渡す必要があります。これを達成するために、ルートコンポーネントのクエリは一連の結合になります。アプリケーション内にあるすべてのコンポーネントのクエリ(一意のidentを持つ)は、ルートレベルでの結合として表現する必要があります。アプリケーションにデータが入っている場合は、ルートに入っている必要があります。これはアプリケーションのアプリケーション状態から取得するOm Nextによってそこに置かれます。

Om Nextアプリケーションでは、コンポーネントはツリーとしてまとめられています。それらは、特にジョインによって、クエリによって互いに関係しています。

実行時に、各コンポーネントのrenderメソッドは、親からそれらに渡された小道具を取得します。コンポーネントのクエリによって、どのような小道具が期待されるかがわかります。これらの小道具は単純な地図です。

質問に対する回答は、はい、いいえ、はいです。その3番目のケースでは、親は子コンポーネントのクエリを実際に照会していないので、そのクエリ自体のデータがすでに結合されていて、子にデータを渡しています。

最後の質問「多くのサンプルでは、​​親コンポーネントに(om/get-query ChildComponentClass)のようなものがありますか?これは、クエリ構文で記述子に親から参加されています

{:app/child-join (om/get-query app/ChildComponentClass)} 

これらのカーディナリティが参加するには、実行時まで知られていない:それは0、1または多くのことができます。それが1の場合、ルックアップ関係として記述することができます。マスターディテール関係の複数の場合。もしそれがなければ、どちらかになる可能性があります。

関連する問題