Reagent uses async rendering model. Reagent uses browsers requestAnimationFrame
to schedule render calls:
https://reagent-project.github.io/news/reagent-is-async.html
[:input {:default-value "foo" :on-change #(js/console.log (.. % -target -value))}]
Uncontroller input is an input which value is not updated by Reagent/React if the value set in the code changes. After initial render, the value is only changed by users interactions.