ultimate-hot-reloading-example

Hot reload all the things!

Stars
963
Committers
10

Ultimate Hot Reloading Example

👉👉👉👉 This project is intended as an example of how to fit an application together, the idea is that you read the code and understand how it works - then apply the same approach in your own projects. 👈👈👈👈

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

Demo