写react调试的时候,需要实时刷新页面,我一开始是用hot-loader的,后来发现不用hot-loader,而只用webpack-dev-server来调试一样可以实时刷新。
那么请问这两者的实时刷新有什么区别么?
为什么要专门出一个hot-loader?
写react调试的时候,需要实时刷新页面,我一开始是用hot-loader的,后来发现不用hot-loader,而只用webpack-dev-server来调试一样可以实时刷新。
那么请问这两者的实时刷新有什么区别么?
为什么要专门出一个hot-loader?
react-hot-loader 是对 webpack 的热加载进行了改进,支持 react 组件状态不丢失。题主可以尝试去掉开发环境的 react-hot-loader,然后修改网页上输入框的值,再修改代码,发现网页会刷新且输入框的值不在了。如果有 react-hot-loader 就不会存在该问题。
至于为什么要保存状态?这个在自己写代码调试的时候,可以体验到状态不丢失的好处!
webpack-dev-server是在页面中插入了代码,会发起一个websocket链接,当修改代码保存并重新打包之后,会返回数据控制浏览器刷新页面。
hot-loader不清楚,之前好像在哪里看到说hot-loader是实时替换reducer。
mark下,等高手解答。
5 回答8.2k 阅读
2 回答10.3k 阅读✓ 已解决
2 回答10.5k 阅读✓ 已解决
3 回答4.6k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答1.7k 阅读
3 回答2.1k 阅读✓ 已解决
区别在于
webpack-dev-server
自己的--hot
模式只能即时刷新页面,但状态保存不住。因为React
有一些自己语法(JSX)是HotModuleReplacementPlugin
搞不定的。而
hot-loader
在--hot
基础上做了额外的处理,来保证状态可以存下来