Part 3a (to be continued) of Grokking Fulcro is now available. This one’s a bit long. https://youtu.be/r1bMQxTr2QA
Part 3 is essentially going through the concepts and challenges of UI + data models that now lead to what exists in Fulcro. The second part of this will drop as time allows.
Could fulcro provide something similar to helix's "$"? (https://github.com/lilactown/helix/blob/master/docs/creating-elements.md#-macro) I think being able to omit the definition of ui-mysc for smaller sc's is very convenient
It could, but not sure it will. Aliases to shorter names are trivial and can be done by your own code for your preferences, as can wrapper macros that make similar syntactic sugar for your taste.
I probably will eventually (as time allows) be adding something that can create lighter-weight on-demand components whose existence is purely for query/normalization purposes. For example, a non-registered query/ident thing that could be used like this (df/load :my-key (sc :person/id [:person/id :person/name {:person/address (sc :address/id [:address/id :address/street])}]))
]
where you could hand-code an ident/query pair into a non-ui unit that responds to get-ident and get-query for use in normalization cases without so much real overhead as creating a formal registered defsc
.
RAD also has the intentional design of being able to dynamically generate components on the fly. Imagine a “form designer” as a user feature, where they say what columns and the basic layout, and it generates the code/ui route on the fly and installs it into the app (storing the user parameters in your database for later re-use)
Fulcro and RAD already have everything you need to do that…other than people writing the “convenience” APIs on top of the base primitives.
Reading your answer, what I realized is that "comp/get-query" should really mean "comp/get-the-ident-query-pair". Because that's what's really happening. The actual algebraic structure the normalization algorithm relies on is not the tree of queries, it's the tree of (ident, query) tuples.
correct
that’s a good way of saying it