Skip to content

alainlompo/react-hot-loader

 
 

Repository files navigation

React Hot Loader 3 npm package

React Hot Loader 3 beta has arrived!

It fixes some long-standing issues with both React Hot Loader and React Transform.

It is intended as a replacement for both.

Some nice things about it:

  • Editing functional components preserves state (see notes)
  • Works great with higher order components (see notes)
  • Requires little configuration
  • Automatically disabled in production
  • Works with or without Babel (you can remove react-hot-loader/babel from .babelrc and instead add react-hot-loader/webpack to loaders) (see notes)

Check out the Migration to 3.0 guide to learn how to migrate your app to 3.0.

Installation

npm install --save react-hot-loader@next

Usage

If you want to try hot reloading in a new project, try one of the starter kits.

Provided by owner and collaborators:

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 Migration to 3.0 guide.

If you'd rather stay with Browserify, check out LiveReactload by Matti Lankinen.

Known limitations

  • React Router v3 is not fully supported (e.g. async routes). If you want to get most of React Hot Loader, consider switching to React Router v4. If you want to understand the reasoning, it's good to start in React Router v4 FAQ
  • React Hot Loader can't replace any Component, only registered ones.
    • when using webpack loader - only module exports are registered.
    • when using babel plugin - only top level variables are registered.
    • when React Hot Loader can't replace Component, an error message will be displayed.

The Talk

React Hot Loader was demoed together with Redux at React Europe. Watch Dan Abramov's talk on Hot Reloading with Time Travel.

React Native

React Native supports hot reloading natively as of version 0.22.

Troubleshooting

If it 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.

If something doesn't work, in 99% cases it's an issue with your code - Component doesn't got registered, due to HOC or Decorator around it, which making it invisible to babel plugin, or webpack loader.

We're also gathering Troubleshooting Recipes so send a PR if you have a lesson to share!

Documentation

Check out the docs directory.

You can also check out a great webpack guide to React hot module replacement.

Got Questions?

Gitter

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)

About

Tweak React components in real time.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%