Ian Jones Logo

Fulcro

A Clojurescript client side framework and a Clojure backend.

It uses Pathom to query data.

You create component classes that you create react functions out of.

defsc creates these components.

defsc has a map that you define the query for the component.

This takes a :query, :initial-state, and ident keys.

:ident is the key in the query that makes that piece of data unique. usually the id field of the table.

Mutations

you can mutate the data on the db app with defmutation.

It takes a map of keys for what to operate on. The action section is what you want to do locally. The action passes you the state, which is the db. Mutations return themselves as data when you invoke them.

To cause a mutation to run, you have to call comp/transact!

Components

You can add :.ui.form to add classes to a div. The macro will expand to {:className "ui form"}

get the component options with comp/component-options.

defsc implements :shouldComponentUpdate for you.

:componentDidMount is a pure lamda, so you have to pull the props off the component yourself with comp/props passing this.

Fulcro Hello World in Roam Fulcro State Normalization in Roam

25:17 on full stack one video. Youtube link

Footnotes