热更新是保存后自动编译吗?
还是自动刷新浏览器?
还是指HMR(模块热替换)?

浏览器的热更新,指的是:

在本地开发的同时打开浏览器进行预览,当代码文件发生变化时,浏览器自动更新页面内容的技术

自动更,表现上分为:

自动刷新整个页面
页面整体无刷新而只更新页面的部分内容

以webpack中的热更新配置为例子:

一切依赖手动

src/index.js

function render(){
div = document.createElement('div')
div.innerHTML = 'Hello World'
document.body.appendChild(div)
}render()
webpack.config.basic.js
module.exports ={
entry:'./src/index.js',
mode:'development'
}
package.json"scripts":{
"build:basic":"webpack --config webpack.config.basic.js "
}

当我们改变原文件的内容,会发现由于构建内容中没有任何对应的处理,自然打包内容没有进行更新,必须手动的进行修改

Watch模式

webpack.config.watch.js

{...
watch:true
...}package.json"script":{
"build:watch":"webpack  --config wabpack.config.watch.js"
}

执行的时候,当发现原文件变更后,会再次执行这个流程

但是有bug

为了看到执行效果,需要在浏览器中进行预览
但是在预览时发现,及时产物文件发生了变化
在浏览器里依然需要手动点击刷新才能看到变更后的效果

Live Reload

为了使代码变更后,浏览器的变更内容能自动显示

webpack.config.reload.js

{...
devServer:{
contentBase:'./dist',  //为.dist目录中的静态页面文件提供本地服务渲染
open:true //启动服务后自动打开浏览器网页
}
...}package.json"scripts":{
"dev:reload":"webpack-dev-server --config webpack.config.reload.js"
}

但是也有bug

在开发调试过程中会在网页中进行一些操作
例如输入了一些表单数据想要调试错误提示的样式,打开了一个弹窗想要调试其中按钮的位置
切换回编译器,修改样式文件进行保存
网页刷新后回到了初始化的状态,不得不再次重复操作才能确认改动后的效果

Hot Module Replacement

 module.exports = {entry: './src/index1.js',mode: 'development',devServer: {contentBase: './dist',open: true,hot: true},module: {rules: [{test: /\.css$/,use: ['style-loader', 'css-loader']}]}
}

可以通过这幅图

到底什么是浏览器的热更新?(webpack版)相关推荐

  1. 修改html时webpack热更新,webpack学习之路(二)webpack-dev-server实现热更新

    上一章对webpack的配置有了简单的认识. 这一章,我需要学习的是webpack热更新,因为在开发过程中,不希望当文件更改时,人肉去编译文件,刷新浏览器. webpack热更新 webpack-de ...

  2. 修改html时webpack热更新,webpack热更新(HMR)

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 一.HMR介绍 在我们开发react应用的时候,在配置了webpack-dev-server的前提下每一次的组件内容修改 ...

  3. 【Webpack】1047- 轻松理解webpack热更新原理

    一.前言 - webpack热更新 Hot Module Replacement,简称HMR,无需完全刷新整个页面的同时,更新模块.HMR的好处,在日常开发工作中体会颇深:节省宝贵的开发时间.提升开发 ...

  4. 理解 webpack 热更新

    一.开启:HotModuleReplacementPlugin/--hot 二.webpack 编译构建后,控制台出现: 1.新的 hash 值 // 作为下次热更新的标识 2.新的 json 文件 ...

  5. webpack热更新原理-连阿珍都看懂了

    前言 在旧开发的时代,前端项目在开发的过程中修改代码,很有可能是手动切到浏览器刷新页面来看到改动效果.操作不方便且页面之前的编辑记录也都丢失,体验可以说为0.想象一下一个表达你努力填满了所有输入项,结 ...

  6. webpack (九) -热更新——浏览器不刷新,更新打包后的结果

    17-webpack-热更新--浏览器不刷新,更新打包后的结果 实现浏览器不刷新,更新打包后的结果,默认对js不生效,对样式生效. https://www.webpackjs.com/guides/h ...

  7. webpack 4 热更新后台成功更新浏览器不刷新

    上一篇文章写的是 webpack4 打包,但是每次修改代码都要重新执行一次打包命令,实在是麻烦,本文将推出我的实现,仅做参考!!! 1.安装 webpack-dev-server npm instal ...

  8. webpack和vue热更新

    目录 webpack一些概念介绍 webpack热更新流程 1. 启动阶段 ①->②->A->B 2. 更新阶段 ①->②->③->④ vue的组件热更新模块 总结 ...

  9. webpack热更新实现

    原文地址:webpack热更新实现 webpack,一代版本一代神,代代版本出大神.如果你的webpack和webpack-dev-server版本大于2小于等于3.6,请继续看下去.其它版本就必浪费 ...

最新文章

  1. 向日葵Ubuntu连接马上断开问题
  2. 2020年中国智慧城市发展研究报告(附下载)
  3. 【转】HTML5 本地存储五种方案
  4. 反射工具类,如斯优雅
  5. Java学习路线详解
  6. 谁将引领新一代视频编码标准:HEVC、AVS2和AV1性能对比报告
  7. Firefox浏览器常见问题开讲
  8. java写入carbondata_Carbondata使用过程中遇到的几个问题及解决办法
  9. pytorch 模型同一轮两次预测结果不一样_2020年的最新深度学习模型可解释性综述[附带代码]...
  10. (194)FPGA上电后IO的默认状态(ISE软件默认为0)
  11. Kernel那些事儿之内存管理(5) --- 衣带渐宽终不悔(上)
  12. python调用perl_文本处理,用perl 还是python?
  13. fastjson:map转json字符串、json字符串转map、map根据key名拿value、JSONArray转list
  14. linux centos7 利用keepalived 搭建高可用nginx集群
  15. 微信开放平台申请网站应用
  16. 衡量公司盈利能力的重要指标-净资产收益率
  17. sql update
  18. asp.net实现MD5加密
  19. Taro 与 React 的差异(Taro的约束(keng))
  20. 笔记本3.0 typec接口插上U盘没有反应

热门文章

  1. 用MySQL实现类似微信朋友圈的屏蔽功能
  2. Launcher负一屏---创建和添加流程
  3. 《windows server 2008 r2》配置IIS7+PHP环境
  4. 酒店前台计算机操作技能,酒店前台操作必备知识
  5. 自由设置图片尺寸,快速缩放多张图片尺寸统一
  6. 易语言大漠模块制作教程查找颜色FindColor
  7. oracle+rownum(),Oracle rownum用法
  8. 用VPS/Linux/CentOS7搭建泰拉瑞亚原版/mod服务器教程
  9. 15倍提升 40倍存储优化,TDengine在领益智造的实践
  10. 学习笔记(2)HTML5新特性