Git Product home page Git Product logo

react-hot-loader's Introduction

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)

react-hot-loader's People

Contributors

gaearon avatar calesce avatar gregberge avatar wkwiatek avatar gadicc avatar alexanderchr avatar nfcampos avatar montogeek avatar rokt33r avatar hedgerh avatar thekashey avatar unimonkiez avatar zachasme avatar plag avatar rickwong avatar nkbt avatar meyer avatar vebits avatar sotnikov-link avatar thomasthiebaud avatar tcoopman avatar gitter-badger avatar earnubs avatar sotayamashita avatar ctrlplusb avatar nganbread avatar ro-savage avatar readmecritic avatar piperchester avatar peter-mouland avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.