We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
刷新我们一般分为两种:
window.location.reload()
WDS (Webpack-dev-server)
Webpack的热更新又称热替换(Hot Module Replacement),缩写为HMR。 这个机制可以做到不用刷新浏览器而将新变更的模块替换掉旧的模块。
(Hot Module Replacement)
HMR
HMR的核心就是客户端从服务端拉去更新后的文件,准确的说是chunk diff(chunk 需要更新的部分),实际上 WDS 与浏览器之间维护了一个Websocket,当本地资源发生变化时,WDS会向浏览器推送更新,并带上构建时的 hash,让客户端与上一次资源进行对比。客户端对比出差异后会向 WDS 发起Ajax请求来获取更改内容(文件列表、hash),这样客户端就可以再借助这些信息继续向 WDS 发起 jsonp请求获取该chunk的增量更新。
chunk diff
Websocket
Ajax
jsonp
后续的部分(拿到增量更新之后如何处理?哪些状态该保留?哪些又需要更新?)由HotModuleReplacementPlugin来完成
HotModuleReplacementPlugin
详细过程请看轻松理解webpack热更新原理,强烈推荐必看!
The text was updated successfully, but these errors were encountered:
No branches or pull requests
刷新我们一般分为两种:
window.location.reload()
。WDS (Webpack-dev-server)
的模块热替换,只需要局部刷新页面上发生变化的模块,同时可以保留当前的页面状态,比如复选框的选中状态、输入框的输入等。Webpack的热更新又称热替换
(Hot Module Replacement)
,缩写为HMR
。 这个机制可以做到不用刷新浏览器而将新变更的模块替换掉旧的模块。HMR的核心就是客户端从服务端拉去更新后的文件,准确的说是
chunk diff
(chunk 需要更新的部分),实际上 WDS 与浏览器之间维护了一个Websocket
,当本地资源发生变化时,WDS会向浏览器推送更新,并带上构建时的 hash,让客户端与上一次资源进行对比。客户端对比出差异后会向 WDS 发起Ajax
请求来获取更改内容(文件列表、hash),这样客户端就可以再借助这些信息继续向 WDS 发起jsonp
请求获取该chunk的增量更新。后续的部分(拿到增量更新之后如何处理?哪些状态该保留?哪些又需要更新?)由
HotModuleReplacementPlugin
来完成详细过程请看轻松理解webpack热更新原理,强烈推荐必看!
The text was updated successfully, but these errors were encountered: