Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 使用热模块重新加载显式渲染?_Reactjs_Webpack_Redux_Webpack Hmr - Fatal编程技术网

Reactjs 使用热模块重新加载显式渲染?

Reactjs 使用热模块重新加载显式渲染?,reactjs,webpack,redux,webpack-hmr,Reactjs,Webpack,Redux,Webpack Hmr,我无意中发现了,不太明白背后的道理 const render=()=>{ const-App=require('./App/App')。默认值 ReactDOM.render( , document.getElementById('root')) ) } render() if(process.env.NODE_env==='development'&&module.hot){ module.hot.accept('./app/app',render) } 这段代码的想法应该只是通过Redux

我无意中发现了,不太明白背后的道理

const render=()=>{
const-App=require('./App/App')。默认值
ReactDOM.render(
,
document.getElementById('root'))
)
}
render()
if(process.env.NODE_env==='development'&&module.hot){
module.hot.accept('./app/app',render)
}
这段代码的想法应该只是通过Redux添加React应用程序的功能,但作者还明确定义了
render
方法,并在底部添加
module.hot
。我真的没有
webpack
方面的知识,想知道是否有人能解释一下更新代码的用法

作者的解释是错误的

与root reducer一样,只要组件文件发生更改,我们就可以热重新加载React组件树。最好的方法是编写一个导入组件并呈现它的函数,在启动时调用该函数以像往常一样显示React组件树,然后在组件发生更改时重用该函数

Webpack HMR允许您“交换”Webpack捆绑包中的模块(文件),这提供了最佳的开发人员体验,因为您无需刷新页面即可查看更改

作为HMR机制的一部分,应用程序应该“接受”更改,并提供一个在接受的文件更改时调用的函数

在您的情况下,您正在“接受”应用的根目录
/app/app
(它可能是依赖关系树的根目录)中的更改,因此可以从
/app/app
访问的其中一个文件中的每个更改都将触发您提供的功能(
渲染
功能)。这意味着您的React应用程序将在某些文件更改时重新呈现根组件

希望这更清楚:]