Ultimate Hot Reloading Example
This is NOT intended as a boilerplate or a starter kit, I don't recommend using it as a base for a project unless you're happy that you know how stuff fits together.
Goals
- Only one running node process
✅ - Client-side Redux reducer hot reloading
✅ - Server-side Redux reducer hot reloading
✅ - Client-side React component hot reloading (preserving this.state)
✅ - Server-side React component hot reloading
✅ - Server-side express routes hot reloading
✅ - Client side css-modules hot reloading
✅ - Using mostly ES6 module syntax, except where dynamic loading is needed
✅ - Data fetching through a remote API
- Multiple pages via Routing
Why?
Hot reloading & related techniques can be used to provide an ultra-fast feedback cycle. Watch this video if you'd like to hear more about why this is great.
Installing
Once cloned locally, run npm install
. To start the server run npm start
and visit http://localhost:3000/
in your browser.
Try it out
- Change initial in
reducers/index.js
and hit refresh to see server redux reload - Change INC amount in
reducers/index.js
to and hit the button to see client redux reload - Change component in
components/App.js
to see client/server react reload - Change the responses in
server/app.js
to see the express routes reload - Change the CSS in
client/common/layout.css
to see imported CSS reload - Change the CSS in
client/components/App.css
to see the imported CSS reload