热模块重新加载与浏览器化,redux和反应路由



我更喜欢浏览器而不是webpack,但是浏览器化环境中存在一个我无法解决的问题。我正在使用 react、redux 和 react-route,我愿意像 react-hot-loader 为 webpack 环境提供的那样让热模块重新加载。我正在使用livereactload来实现这一点(也尝试过browserify-hmr),问题是它不适用于redux。它的 redux 示例 (https://github.com/milankinen/livereactload/blob/master/examples/02-redux) 不适用于新克隆。可能吗?有人可以给我应用于示例以使其工作所需的更改吗?

附言看看这个问题 https://github.com/milankinen/livereactload/issues/64

我正在使用它,但作为一个监视插件:plugin(require('livereactload')),它工作正常。

我确实有 LiveReactload :: 捆绑包已更改,页面已更新,但也有此警告:browser.js:51 警告:[反应路由器] 您无法更改; 它将被忽略。

它仍然会进行"本地"重新加载,但它不是"真正的"热重载,因为很多东西仍然被重新渲染并且没有达到我想要的那么多。

我们唯一需要添加的配置存储是以下内容:

export default function configureStore(initialState) {
  const store = createStoreWithMiddleware(rootReducer, initialState);
  // React hot reload
  if (module.onReload) {
    module.onReload(() => {
      const nextReducer = require('../reducers');
      store.replaceReducer(nextReducer.default || nextReducer);
      // return true to indicate that this module is accepted and
      // there is no need to reload its parent modules
      return true;
    });
  }
  return store;
}

我对redux的问题是我没有使用react-proxy@1.x也没有使用babel-plugin-react-transform所以我的组件没有包装在代理中。新版本的livereactload将在没有react-proxy的情况下使用它,或者babel-plugin-react-transform看看这个:https://github.com/milankinen/livereactload/issues/64#issuecomment-231992217

我对react-route的问题是我在 Route 指令中使用了定义为箭头函数的组件。显然livereactload不支持这一点。它是通过使用类组件而不是箭头函数来解决的。此处解释:https://github.com/milankinen/livereactload/issues/43#issuecomment-231990841

相关内容

  • 没有找到相关文章

最新更新