Ja. Die Root-Komponente ist speziell. Alle Daten müssen in die Root-Komponente übergeben werden. Um dies zu erreichen, wird die Abfrage Ihrer Root-Komponente aus einer Reihe von Joins bestehen. Die Abfrage jeder Komponente in Ihrer Anwendung (mit einer eindeutigen ID) muss als Join auf der Stammebene dargestellt werden. Wenn Daten in Ihre Anwendung gelangen, müssen sie in den Stammordner gelangen. Es wird von Om Next dorthin gestellt, was es aus dem App-Status Ihrer Anwendung nimmt.
In einer Om Next-Anwendung sind Ihre Komponenten zusammen als Baum zusammengesetzt. Sie sind durch ihre Abfragen miteinander verbunden, insbesondere durch Joins.
Zur Laufzeit erhalten die render
Methoden jeder Komponente ihre Requisiten von den Eltern überliefert. Die Abfrage der Komponente wird Ihnen sagen, was zu erwarten ist. Diese Requisiten sind eine einfache Karte.
Die Antworten auf Ihre Fragen in der Reihenfolge sind: ja, nein, ja. Für diese dritte Instanz untersucht das übergeordnete Element die Abfrage seiner untergeordneten Komponente nicht so sehr, wie es bereits die Daten für diese Abfrage selbst als Join enthält, und übergibt die Daten an das untergeordnete Element.
Ihre letzte Frage "Warum haben viele der Beispiele Elternkomponenten, die etwas wie (om/get-query ChildComponentClass)
anrufen?". Dies ist ein für das Kind aus dem Mutter beitreten, in Abfragesyntax beschrieben:
{:app/child-join (om/get-query app/ChildComponentClass)}
Die Mächtigkeit dieser Füge wird erst zur Laufzeit bekannt: es kann 0, 1 oder viele. Wenn es eins ist, könnten Sie es als Nachschlagebeziehung beschreiben. Wenn mehr als eine als Master-Detail-Beziehung. Wenn nicht, könnte es auch sein.