Skip to content

Instantly share code, notes, and snippets.

@deadghost
Created July 30, 2017 01:33
Show Gist options
  • Save deadghost/dc4c2f1c3b5f919e7107c414d1859a3a to your computer and use it in GitHub Desktop.
Save deadghost/dc4c2f1c3b5f919e7107c414d1859a3a to your computer and use it in GitHub Desktop.
reagent re-render counter example
(defonce app-state (reagent/atom {:foo 0 :bar 0}))
(defn show-count [r]
[:div "Count is" (str @r)])
(defn counted [ratom]
(let [render-count (reagent/atom 0)]
(fn [ratom]
(let [{:keys [foo bar]} @ratom]
(swap! render-count inc)
[:div
[:div "foo count is: " foo]
[:div "bar count is: " bar]
[show-count render-count]]))))
(defn page [ratom]
[:div
[:button {:on-click #(swap! ratom update :foo inc)}
"Increment foo"]
[:button {:on-click #(swap! ratom update :bar inc)}
"Increment bar"]
[counted ratom]])
(defn reload [] (reagent/render [page app-state]
(.getElementById js/document "app"))) (defn ^:export main [] (reload))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment