はい。ルートコンポーネントは特別です。すべてのデータをルートコンポーネントに渡す必要があります。これを達成するために、ルートコンポーネントのクエリは一連の結合になります。アプリケーション内にあるすべてのコンポーネントのクエリ(一意のidentを持つ)は、ルートレベルでの結合として表現する必要があります。アプリケーションにデータが入っている場合は、ルートに入っている必要があります。これはアプリケーションのアプリケーション状態から取得するOm Nextによってそこに置かれます。
Om Nextアプリケーションでは、コンポーネントはツリーとしてまとめられています。それらは、特にジョインによって、クエリによって互いに関係しています。
実行時に、各コンポーネントのrender
メソッドは、親からそれらに渡された小道具を取得します。コンポーネントのクエリによって、どのような小道具が期待されるかがわかります。これらの小道具は単純な地図です。
質問に対する回答は、はい、いいえ、はいです。その3番目のケースでは、親は子コンポーネントのクエリを実際に照会していないので、そのクエリ自体のデータがすでに結合されていて、子にデータを渡しています。
最後の質問「多くのサンプルでは、親コンポーネントに(om/get-query ChildComponentClass)
のようなものがありますか?これは、クエリ構文で記述子に親から参加されています
{:app/child-join (om/get-query app/ChildComponentClass)}
これらのカーディナリティが参加するには、実行時まで知られていない:それは0、1または多くのことができます。それが1の場合、ルックアップ関係として記述することができます。マスターディテール関係の複数の場合。もしそれがなければ、どちらかになる可能性があります。