ClojureScript Tutorial by Andrey Antukh.
From the webpage:
This tutorial consists on to provide an introduction to clojurescript from very basic setup, to more complex application in little incremental steps.
It includes:
- Setup initial clojure app layout.
- Setup initial clojurescript app layout.
- First contact to clojurescript language.
- Working with dom events.
- Working with routing in the browser.
- Working with ajax requests.
- First contact with core.async.
- Working with events and ajax using core.async.
- First contact with om/reactjs.
- Working with om and timetraveling.
- Working with om and peristent state.
- Little bonus: browser enabled repl.
I mention this because it will be helpful background for:
From the description:
Facebook’s React uses a virtual DOM diff implementation for high performance. It updates the view only when it’s needed. But David Nolen’s Om library (ClojureScript wrapper over React) goes even further. It stores application state in one place and passes “branches” of that state to a number of components. Data is immutable, and components are reusable. No more juggling around with JavaScript object literals. If anyone likes data as much as I do they will enjoy working with Om. It’s a great tool for building user interfaces around your data.
This talk will show how to combine core.async, liberator and om with JavaScript visualisation libraries to create interactive charts and maps. I will walk everyone through how to:
- Generate a resource that can be used in a route and use it to pull data for visualisations
- Use om to create reusable components out of JavaScript libraries: dimple.js and leaflet.js
- Create core.async channels and use them communicate user clicks and selections between those components, e.g. selection on a checkbox component triggers reloading of data on a chart component.
The talk will be a practical guide to building small web applications and will be accessible to Clojurians with a basic knowledge of Clojure and HTML.
Enjoy!