This a small example of how you might go about building progressively-enhanced forms with ReactJS, which operate through regular form POSTs if Javascript is disabled, but take advantage of React's built-in client-side DOM-diffing if Javascript is enabled.
git clone https://github.com/jonathanconway/react-progressive-forms
cd react-progressive-forms
npm install
Then you can run it:
npm start