create-react-app react-redux項目 配置模塊熱更新hmr

HRM並不是create-react-app專屬的,提供一篇博客介紹hrm http://chrisshepherd.me/posts/adding-hot-module-reloading-to-create-react-app。

設想如果是一個比較複雜的react app,組件繁多,每次更新都刷新頁面,可能需要等待十幾秒,效率非常低,hmr解決的問題就是實現模塊熱更新,保持應用的狀態。

ReactDOM.render(
  <App />,
  document.getElementById('root')
);

if (module.hot) {
  module.hot.accept('./App', () => {
    const NextApp = require('./App').default;
    ReactDOM.render(
      <App />,
      document.getElementById('root')
    );
  });
}

我用到了react-redux,並且想不指定頁面,實現hmr:

const store = configureStore();

ReactDOM.render(
    <Provider store = { store }>
        <App />
    </Provider>, document.getElementById('root'));

if (module.hot) {
  module.hot.accept(() => {
    ReactDOM.render(
        <Provider store = { store }>
            <App />
        </Provider>, document.getElementById('root'));
  });
}

目前用的這個是create-react-app自帶的hmr,只要簡單開啓個hot開關即可。然後重啓項目,更新代碼,保存,頁面已更新,但瀏覽器未刷新。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章