On Monday, June 23, 2014 1:32:27 AM UTC+10, Jonathon McKitrick wrote:
> On Friday, June 20, 2014 10:29:38 AM UTC-4, Jonathon McKitrick wrote:
> > I discovered that along with Om, there are Reagent and Quiescence.
> > 
> > Has anyone worked with the latter alternatives, and how might I decide what 
> > the tradeoffs are for using each of them?
> 
> So tell me if this is accurate....
> 
> In a nutshell:
> 1.  Reagent has the simplest approach, with just the 'render' function for 
> React.js components, and a ratom (possibly one per component) for state.

Reagent starts simple, but handles more sophisticated situations pretty well, 
IMO.  Components can depend on more than one atom, if required.

For example, if your component is absolutely positioned (a pointing popup which 
has another element as its anchor), then its absolute positioning will be 
dependent on the window size.  If the user resizes, then the popup's absolute 
positioning changes.  

In such a case, it is easy to make your reusable reagent popup component 
dependent on two atoms ... one for the program state, and one representing the 
current size of the window. (It re-renders itself in the right absolute 
position if the window resizes).  Its not that you can't do this in OM, of 
course, but, as I understand it, you'd have to merge the window dimensions into 
the main atom, and meaning the "reusable" popup component would require that 
every app-state had these window dimensions at the same place (cursor). Feels a 
bit hacky to me.  (If I've lead you astray here, and there's a better way to 
create such a reusable component in OM, I hope  someone will correct me.)

Anyway, that's just one example. 

It was this (elegant!) gist that won me over to reagent (thank you allgress!!): 
https://gist.github.com/allgress/11348685 

OM gets all the love and attention in this group but I personally find reagent 
more elegant, scalable, testable and powerful. But with all the energy 
apparently flowing towards OM, I keep on asking myself what I'm missing. :-)

I'm very much looking forward to David Nolen's upcoming release of the CLJS 
logic database which might well change everything (again). Does anyone else 
find the pace of change brutal these days? So many learning curves.

--
Mike




-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/clojurescript.

Reply via email to