I created a minimal example from a chestnut project: 
https://github.com/sveri/freactive-example

The relevant stuff happens in core.cljs and session.cljs. When you run the 
application, add some text to the input and then click the button, the input is 
rerendered, which is unexpected from my side.

I hope that shows the problem I have.

Best Regards,
Sven

Am Freitag, 21. November 2014 10:13:35 UTC+1 schrieb Sven Richter:
> Hi Aaron,
> 
> I took this idea from yogthos blog and the whole session namespace contains 
> an freactive atom plus some helpers:
> 
> (ns de.sveri.dockerui.session
>   (:refer-clojure :exclude [get])
>   (:require [freactive.core :refer [atom]]))
> 
> (def state (atom {}))
> 
> (defn get [k & [default]]
>   (clojure.core/get @state k default))
> 
> (defn put! [k v]
>   (swap! state assoc k v))
> 
> (defn update-in! [ks f & args]
>   (clojure.core/swap!
>     state
>     #(apply (partial update-in % ks f) args)))
> 
> 
> So I am assuming that I can nest (rx ...) calls and only the part that 
> changes will get updated. Is that right?
> This is basically what I am trying to achieve right now.
> 
> Best Regards,
> Sven
> 
> 
> Am Freitag, 21. November 2014 00:23:25 UTC+1 schrieb Aaron Craelius:
> > It should re-render the portion of your DOM that was in an rx that got 
> > invalidated. What does the implementation of sess/get look like?
> > 
> > 
> > On Thu, Nov 20, 2014 at 5:21 PM, Sven Richter <[email protected]> wrote:
> > 
> > Hi, 
> > 
> > I have been playing around and like it so far.
> > 
> > I experience some behavior here where I wonder if it is intended or if I am 
> > doing something wrong.
> > 
> > I have a main-page which I mount like this:
> > (dom/mount! root (main-page))
> > 
> > and which looks like this:
> > (defn main-page []
> > [...
> > [:div#content
> >     [(rx ((sess/get :current-page)))]]...
> > it loads the current page into the content div, this works.
> > 
> > Now I have one page which looks like this:
> > (defn sub-page []
> >   [:div 
> > ; ... some forms
> >    [(rx (di-table))]])
> > 
> > (defn di-table []
> >   [:table
> >    [:tbody
> >     (for [di (sess/get :dis)]
> >       [:tr [:td (:name di)]
> >        [:td (:host di)]
> >        [:td (str (:port di))]
> >        [:td [:button {:id (:id di) :on-click #(delete-docker-instance (:id 
> > di))} "Delete"]]])]])
> > 
> > It works as it rerenders when I change the state, however, it rerenders the 
> > whole page and not only the table, which I wouldn't expect. Is it possible 
> > to only rerender the table? I am using 0.1.0
> > 
> > Best Regards,
> > Sven
> > 
> > Am Montag, 17. November 2014 03:20:40 UTC+1 schrieb Aaron:
> > 
> > 
> > 
> > 
> > 
> > 
> > freactive (pronounced "f reactive" for functional reactive) is a new high 
> > performance, pure Clojurescript, declarative DOM library: 
> > https://github.com/aaronc/freactive
> > 
> > It has a syntax very similar to that of Reagent and was in fact inspired by 
> > Reagent, Om, and others.
> > 
> > I came up with it when I was doing some DOM programming after having 
> > spending a fair amount of time working with JavaFX (see my soon to be 
> > announced library fx-clj: https://github.com/aaronc/fx-clj). I thought Om 
> > and Reagent were very nice to work with (and actually inspired some what I 
> > did with fx-clj), but I felt from my desktop GUI experience, that I could 
> > take things a few steps further.
> > 
> > freactive's main advantages over existing solutions are probably built-in 
> > animations support and slightly higher performance.
> > 
> > Here are it's goals from the README:
> > Provide a simple, intuitive API that should be almost obvious to those 
> > familiar with Clojure (inspiration from reagent)Allow for high-performance 
> > rendering good enough for animated graphics based on a purely declarative 
> > syntaxAllow for reactive binding of any attribute, style property or child 
> > node
> > Allow for coordinated management of state via cursors (inspiration from 
> > om)Provide deeply-integrated animation supportAllow for cursors based on 
> > paths as well as lenses
> > Provide a generic items view component for efficient viewing of large data 
> > sets
> > Minimize unnecessary triggering of update eventsCoordinate all updates via 
> > requestAnimationFrame wherever possibleBe easy to debug
> > Be written in pure Clojurescript
> > Provide support for older browsers via polyfills (not yet implemented)
> > Any feedback is welcome!!
> > I'm not sure I like the name "freactive" - but it was the best I could 
> > think of at the time. Suggestions for alternative names are welcome.
> > 
> > 
> > 
> > 
> > 
> > 
> > -- 
> > 
> > Note that posts from new members are moderated - please be patient with 
> > your first post.
> > 
> > --- 
> > 
> > 
> > 
> > You received this message because you are subscribed to a topic in the 
> > Google Groups "ClojureScript" group.
> > 
> > To unsubscribe from this topic, visit 
> > https://groups.google.com/d/topic/clojurescript/99myJ9vLeKQ/unsubscribe.
> > 
> > To unsubscribe from this group and all its topics, 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.

-- 
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