Skip to content

Instantly share code, notes, and snippets.

@selfsame
Created January 20, 2014 19:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save selfsame/8527811 to your computer and use it in GitHub Desktop.
Save selfsame/8527811 to your computer and use it in GitHub Desktop.
(ns examples.events.core
(:require [om.core :as om :include-macros true]
[om.dom :as dom :include-macros true]))
(enable-console-print!)
(defn ticker [data owner]
(reify
om/IInitState
(init-state [_]
{:s 0})
om/IShouldUpdate
(should-update [this next-props next-state]
(prn "should-update: get-state: " (om/get-state owner)
" get-render-state: " (om/get-render-state owner))
;yes we should update
true)
om/IWillMount
(will-mount [_]
(om/transact! data :force inc ) ;force did-update to fire on initial lifecycle
(prn "will-mount: get-state: " (om/get-state owner)
" get-render-state: " (om/get-render-state owner)))
om/IRenderState
(render-state [_ state]
(prn "render-state: get-state: " (om/get-state owner)
" get-render-state: " (om/get-render-state owner))
(dom/button #js {:onClick #(om/transact! data :force inc )}
(str "state:" (:s (om/get-state owner)) )))
om/IDidUpdate
(did-update [_ _ _ _]
(om/set-state! owner :s (inc (:s (om/get-state owner))))
(prn "did-update: set-state!")
(prn "did-update: get-state: " (om/get-state owner)
" get-render-state: " (om/get-render-state owner))
(prn "------------------")
true)))
(om/root {:force 0} ticker (.-body js/document))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment