编辑
2023-02-24
前端
0

前言

热更新也叫Hot Module Replacement,是指当我们对代码修改并保存后,webpack 将会对代码进行重新打包,并将新的模块发送到浏览器端,浏览器用新的模块替换掉旧的模块,以实现在不刷新浏览器的前提下更新页面。热更新也是webpack原生提供的功能之一。

HMR的工作原理

  1. 监控文件变化:HMR 功能通过构建工具(如 Webpack)监控代码文件的变化。当文件被修改时,构建工具会重新编译并生成更新后的模块。
  2. 通知浏览器:一旦有模块更新,构建系统会通过 WebSocket 通知浏览器。这个过程通常是自动的,由构建工具的开发服务器管理。
  3. 替换模块:浏览器接收到更新通知后,会通过 HMR API 替换旧的模块,同时尝试保持应用状态不变。这意味着应用可以实时更新,而无需重新加载整个页面。
  4. 状态保持:HMR的一个关键特点是它尽可能地保持应用的状态(如用户输入的数据、应用的 UI 状态等)。这对于开发体验尤其重要,因为它允许开发者即时看到更改的效果,而不会丢失当前的应用状态。
编辑
2023-02-21
前端
0

前言

Redux是 JavaScript 状态容器,我们通常会在React的项目中搭配这个库用来处理复杂的业务逻辑。

在学习使用Redux一阶段以后,觉得有必要看一下源码,一方面提高对Redux的理解,另一方面也可以通过阅读源码来提高自身的程序设计水平。

编辑
2023-02-11
前端
0

前言

前端性能关系到页面的用户体验,页面的用户体验影响了产品的留存率,而产品则直接决定了一个公司的生死存亡。

Global Web Performance Matters for ecommerce的报告中指出:

编辑
2023-02-03
前端
0

前言

什么是babel?你可以理解它就是一个语法转器,简单来说就是 ES6、ES7等等的新语法转化为ES5或能让低端浏览器正常运行的代码。比如我们经常使用的async、promise语法,在低端浏览器上可能就无法使用,会引起故障,但是只要我们合理使用babel,我们就可以放心大胆地使用新语法。

下面阐述的内容都是基于Babel 7的使用和总结,因babel 6 和babel 7在使用上存在较大差异,所以需要提前说明一下。