Skip to content

Instantly share code, notes, and snippets.

@zalky
Created October 26, 2017 02:56
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 zalky/3c4bee595cbf88bd7cfc3a6bfe569e2e to your computer and use it in GitHub Desktop.
Save zalky/3c4bee595cbf88bd7cfc3a6bfe569e2e to your computer and use it in GitHub Desktop.
Code Splitting Modules
{:closure-warnings {:non-standard-jsdoc :off}
:optimizations :none
:source-map true
:pseudo-names true
:parallel-build true
:output-dir "js/compiled"
:asset-path "js/compiled"
:modules {:core {:entries #{re-demo.core}
:output-to "js/compiled/app.js"}
:data {:entries #{re-demo.data}
:output-to "js/compiled/data.js"}}}
(ns re-demo.core
(:require [cljs.loader :as loader]
[reagent.core :as r]))
(def state
(r/atom {:input "Hello, world!"}))
(defn input-handler
[e]
(.log js/console e) ; => {key1 val1, key2 val2, ...}
(loader/load :data
;; Something is happening to react synthetic dom events here.
(fn []
(.log js/console e) ; => {key1 nil, key2 nil, ...}
((resolve 're-demo.data/event->value) e))))
(defn root
[app]
[:input {:value (:input @app)
:on-change input-handler}])
(defn init!
[]
(r/render [root state]
(.getElementById js/document "container")))
(loader/set-loaded! :core)
(ns re-demo.data
(:require [cljs.loader :as loader]))
(defn event->value
[e]
(-> e .-target .-value))
(loader/set-loaded! :data)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment