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应用程序将在某些文件更改时重新呈现根组件
希望这更清楚:]