美文网首页
webpack模块热替换

webpack模块热替换

作者: Egde | 来源:发表于2019-04-08 15:50 被阅读0次

概念

在程序运行时可以进行增加、删除、修改模块而无需重新加载整个页面

效果:

  1. 保留在完全重新加载页面期间丢失的应用程序状态。
  2. 只更新变更内容,以节省开发时间。
  3. 在源代码中对 CSS/JS 进行修改,会立刻在浏览器中进行更新,这几乎相当于在浏览器 devtools 直接更改样式。

实现方式

  1. Webpack编译期,为需要热更新的 entry 注入热更新代码(EventSource通信)---注入代码
  2. 页面首次打开后,服务端(webpack-dev-server)与客户端(浏览器)通过 EventSource 建立通信渠道,把下一次的 hash 返回前端---建立通信
  3. 客户端获取到hash,这个hash将作为下一次请求服务端 hot-update.js 和 hot-update.json的hash
  4. 修改页面代码后,Webpack 监听到文件修改后,开始编译,编译完成后,发送 build 消息给客户端---监听、编译、发送给浏览器
  5. 客户端获取到hash,成功后客户端构造hot-update.js script链接,然后插入主文档
  6. hot-update.js 插入成功后,执行hotAPI 的 createRecord 和 reload方法,获取到 Vue 组件的 render方法,重新 render 组件, 继而实现 UI 无刷新更新。

相关文章

  • webpack模块热替换

    概念 在程序运行时可以进行增加、删除、修改模块而无需重新加载整个页面 效果: 保留在完全重新加载页面期间丢失的应用...

  • 12.使用模块热替换 HMR 来处理 CSS

    模块热替换 是什么意思? 以前我们使用的 webpack --watch 或 webpack-dev-server...

  • webpack热更新和自动刷新

    什么是webpack更新? 模块热替换(HMR - Hot Module Replacement)是 webpac...

  • 热重载、热更新

    热更新/ 热模块替换 hot module replacement 热更新:浏览器的无刷新更新(即webpack里...

  • webpack 热更新

    本节我们学习 webpack 的模块热更新,也可以叫做模块热替换。其目的是为了加快用户的开发速度,提高编程体验,方...

  • webpack 热更新

    本节我们学习 webpack 的模块热更新,也可以叫做模块热替换。其目的是为了加快用户的开发速度,提高编程体验,方...

  • 常用plugin

    开启HMR 用途:页面热更新(模块热替换)首先我们要确保项目是基于webpack-dev-server或webpa...

  • webpack实践(5)-- 模块热替换

    模块热替换(HMR) 这个功能允许在运行时更新所有类型的模块,而不是完全刷新。但是HMR不适合生产环境,也就是说它...

  • Webpack模块热替换原理(梁王的理论自习室)

    Webpack模块热替换(HMR) 热替换就是我代码更新了,我不需要手动f5页面就更新了,这个功能主要是用于开发过...

  • Webpack 开发工具与模块热替换

    Webpack 开发工具与模块热替换 ​:warning: 注意:永远不要在生产环境中使用这些工具,永远不要。 ...

网友评论

      本文标题:webpack模块热替换

      本文链接:https://www.haomeiwen.com/subject/puouiqtx.html