什么是热加载?
所谓的 hot reload(热加载) 就是每次修改某个 js 文件后,自动页面局部更新,不需要刷新整个页面。
参考地址:https://github.com/facebook/create-react-app/issues/2317
react 项目使用Hot Module Reload没有Redux的情况
直接在index.js文件加下面代码即可
// regular imports ReactDOM.render(<App /> , document.getElementById('root')) if (module.hot) { module.hot.accept('./App', () => { ReactDOM.render(<App />, document.getElementById('root')) }) }
react 项目有Redux时使用Hot Module Reload
index.js
// Normal imports import { Provider } from 'react-redux' import configureStore from './redux/configureStore' const store = configureStore() ReactDOM.render( <Provider store={store}> <App /> </Provider> , document.getElementById('root')) //上面的代码本身已经有了,加下面的代码即可 if (module.hot) { module.hot.accept('./App', () => { ReactDOM.render( <Provider store={store}> <App /> </Provider>, document.getElementById('root'), ) }) }
configureStore.js (or similar)
import { createStore } from 'redux' import rootReducer from './reducers' const configureStore = () => { const store = createStore(rootReducer)
//上面的代码已经有的,加if里面的即可 if (process.env.NODE_ENV !== "production") { if (module.hot) { module.hot.accept('./reducers', () => { store.replaceReducer(rootReducer) }) } } return store } export default configureStore
-----------------------------分割线-------------------------------------
新建 react 项目
create-react-app my-app
修改端口号
node-modules文件夹 > react-scripts文件夹 > scripts文件夹 > start.js
const DEFAULT_PORT = parseInt(process.env.PORT, 10) || 3000;