This document explains the operation of the "Replay" button, and how to use The HotPlay Workflow.
By using the backwards and forwards arrows, re-frame-trace
allows you to navigate through Epochs.
At any one moment, you are inspecting a single Epoch, for which we'll use the term "The Observed Epoch".
When you click the "Replay" button, you are asking re-frame-trace
to perform
an "Action Replay" of "The Observed Epoch", and this happens in two Steps:
app-db
is reset to the value it contained immediately prior to "The Observed Epoch"So, Step 1 is "reestablish initial conditions" and Step 2 is "do it all again".
app-db
will trigger computation and trace.
Subscriptions and views are run as the application returns to the "prior state",
but none of the associated trace is captured. It is all ignored.It facilitates "The HotPlay Workflow":
Observe
an Epoch (in re-frame-trace
) to see if an event was correctly processedEdit
(fix) the event handler (or subs handler, view, etc) via Cursive, Emacs, etc.Hotload
your correctionReplay
buttonBecause of Replay's
"Step 1", you get identical "initial conditions" for
each iteration of the workflow, and this is true blessing. It removes the nagging
cognative load of "allowing for" slightly shifting state and its consequences, or
the effort of manually reestablishing identical application state before each iteration.
WARNING: obviously this only works when the state is contained within your SPA. When there's authorative remote state (a remote database?) there'll be more involved in returning to initial conditions each iteration.
The initials of this Observe/Edit/Hotload/Replay process are OEHR, which, well, doesn't exactly roll off the tounge like REPL. So we call it "HotPlay" because "Hotload" and "Replay" are the two central pieces of tech. We love you Figwheel.
Can you improve this documentation?Edit on GitHub
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close