Learn how to build reactive user interfaces based on ClojureScript and React.js. These episodes gradually build up your knowledge. You start by building a small app using React directly, then move on to using Reagent, a popular wrapper library. Finally you learn how to give your Reagent apps a more coherent structure based on re-frame.
React’s component based approach means you don’t have to reinvent the wheel, there are literally thousands of building blocks freely available.
When using React components from Reagent there are a few things to watch out for, this episode will show you how to use some popular React components from Reagent, and point out useful constructs and patterns.
You’ll also get to see some of the new
cljs.main feature that landed in
Side effects in re-frame are handled through events. You’ll implement several event handlers of a TodoMVC app so it becomes functional. You’ll also implement custom effect and co-effect handlers for storing the application state in localStorage. To debug event handlers you’ll learn about the “debug” interceptor, and about re-frisk, a handy tool for inspecting your re-frame database.
Reagent is a popular and easy to use option for using React with ClojureScript. re-frame builds on top of Reagent, providing an elegant and opinionated way to structure applications and deal with application state. The documentation for re-frame can easily overwhelm. With this episode you get a practical hands-on introduction, so you can be making your own apps in no time.
React.js is the new hotness in the land of user interfaces. It’s descriptive approach pairs wonderfully with ClojureScript’s functional underpinnings.
This episode will show how to build an app with React, all from comfortable ClojureScript. It provides a solid foundation for diving into React wrappers like Reagent or Om later on, and it’s a welcome exercise in using ClojureScript’s interop features.
We’ll cover: elements, components, the virtual DOM, using an atom to keep application state, and attaching event handlers with component properties.