HRM並非create-react-app專屬的,提供一篇博客介紹hrm http://chrisshepherd.me/posts/adding-hot-module-reloading-to-create-react-app。react
設想若是是一個比較複雜的react app,組件繁多,每次更新都刷新頁面,可能須要等待十幾秒,效率很是低,hmr解決的問題就是實現模塊熱更新,保持應用的狀態。redux
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開關便可。而後重啓項目,更新代碼,保存,頁面已更新,但瀏覽器未刷新。app