Con*_*sea 2 javascript reactjs webpack babeljs redux
我正在使用此提交中的说明尝试将react-hot-loader版本 3添加到create-react-app. (滚动到底部以查看 babel 和 webpack 配置)
编辑:更改'webpack/hot/dev-server'为'webpack/hot/only-dev-server'允许热重载工作。为什么这样?另外,如果无法重新加载完整状态,我将如何使其重新加载网页?
预期行为:
在编辑器中编辑 React 组件会在不刷新浏览器的情况下替换浏览器中的模块。
实际行为(使用更改的配置):
无论在何处进行更改,在编辑器中编辑 React 组件都会刷新浏览器,并显示该更改。
我的代码:
我正在使用以下代码(如本次提交中所建议)重新加载应用程序,包括 Redux 中的 Provider/store。
import React from 'react'
import ReactDOM from 'react-dom'
import App from "./components/App/App"
import "./styles/index.scss"
import { AppContainer } from 'react-hot-loader'
import configureStore from "./redux/store"
const store = configureStore()
ReactDOM.render(
<div>
<AppContainer>
<App store={store} />
</AppContainer>
</div>,
document.getElementById('root')
)
if (module.hot) {
module.hot.accept('./components/App/App', () => {
render(
<AppContainer props={{ store }}>
{require('./components/App/App').default}
</AppContainer>,
document.getElementById('root')
)
})
}
Run Code Online (Sandbox Code Playgroud)
我的配置:
原始配置来自该create-react-app工具。更改的配置是我尝试react-hot-loader在这个项目中工作。
原始 CRA webpack 配置:https : //github.com/facebookincubator/create-react-app/blob/master/packages/react-scripts/config/webpack.config.dev.js
我修改过的 CRA webpack 配置:https ://gist.github.com/Connorelsea/674a31e157d54144623ebf0ec775e0e7
原始 CRA babel 配置:https : //github.com/facebookincubator/create-react-app/blob/master/packages/react-scripts/config/babel.dev.js
我修改过的 CRA babel 配置:https : //gist.github.com/Connorelsea/58664bfea423f5708a2e0f168fd391c9
小智 5
花了半天时间,使用lates CRA - 1.0.14,2017年10月,非常简单。删除所有更改并做两件事:
1) 添加到 index.js
if (module.hot) {
module.hot.accept();
}Run Code Online (Sandbox Code Playgroud)
2) 稍微更新 configureStore.js:
if (module.hot && process.env.NODE_ENV !== 'production') {
module.hot.accept('./reducers', () => {
const nextRootReducer = require('./reducers'); // eslint-disable-line
store.replaceReducer(nextRootReducer);
});
}
return store;Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1657 次 |
| 最近记录: |