sift-react-hot-loader
v0.3.0
Published
Tweak React components in real time (modified for the Sift Science Console).
Downloads
7
Maintainers
Readme
This fork of React Hot Loader is specifically hacked together for Sift Science
Sift Science had some irreconcilable issues adopting React Hot Loader v3, including:
- v3 does not properly bind ES6 class methods or arrow functions (via react-proxy)
- we do not use React Router, but use
require.ensure
extensively, which we found to be quite buggy with v3 - v3 relies on the
AppContainer
component wrapping our root instance as children, which has certain negative effects within our UI (unmounting/remounting the children).AppContainer
, with v3, is also supposed to remain in production.
However, while upgrading to React >= 16, we found that we could no longer use RHLv1 out of the box. This fork adds react-deep-force-update to v1, providing it with our global-in-development root component, bringing back the fabulous v1 functionality to the latest React.
A hack indeed, but it works!
React Hot Loader
This is a stable for daily use in development implementation of React live code editing.
Get inspired by a demo video and try the live demo.
Use one of the starter kits for your next React project.
The Talk
React Hot Loader was demoed together with Redux at React Europe.
Watch Dan Abramov's talk on Hot Reloading with Time Travel.
Installation
npm install --save-dev react-hot-loader
Usage
If you want to try hot reloading in a new project, try one of the starter kits, React Hot Boilerplate being the most minimal one.
To use React Hot Loader in an existing project, you need to
- switch to Webpack for builds (instead of RequireJS or Browserify);
- enable Hot Module Replacement, which is a Webpack feature;
- configure Webpack to use React Hot Loader for JS or JSX files.
These steps are covered by the walkthrough.
If you'd rather stay with Browserify, check out LiveReactload by Matti Lankinen.
Flux
Redux is a Flux implementation that supports hot reloading of everything out of the box. Read The Evolution of Flux Frameworks for some context around its creation.
React Native
React Native supports hot reloading natively as of version 0.22.
Troubleshooting
If something doesn't work, in 99% cases it's a configuration issue. A missing option, a wrong path or port. Webpack is very strict about configuration, and the best way to find out what's wrong is to compare your project to an already working setup, such as React Hot Boilerplate, bit by bit. We're also gathering Troubleshooting Recipes so send a PR if you have a lesson to share!
Documentation
Docs are in a bit of a flux right now because I'm in the process of updating everything to document the major 1.0 release.
If you just learned about React Hot Loader and want to find out more, check out the walkthrough and then try one of the starter kits.
If you've been with us for a while, read 1.0 release notes and migration guide.
Got Questions?
Watch the repo to stay tuned!
Patrons
The work on React Hot Loader, React Transform, Redux, and related projects was funded by the community.
Meet some of the outstanding companies that made it possible:
See the full list of React Hot Loader patrons.
License
MIT (https://opensource.org/licenses/mit-license.php)