前端开发敲完npm run dev,修改组件、样式保存后浏览器立刻同步变化,不用手动刷新页面、重新操作页面流程,这套机制就是热重载。很多开发者只知道好用,但分不清「自动整页刷新」和「HMR 热模块替换」,也不明白 Vite 为什么比 Webpack 热更新更快。
本文基于视频原文,结合工程化底层原理优化拓展,拆解文件监听、WebSocket 通信、HMR 执行流程,对比 Webpack 与 Vite 热更新架构,梳理热更新失效场景、开发避坑要点,适合前端入门学习、技术博客发布、面试复习。
一、什么是热重载?核心解决什么开发痛点
1. 基础定义
热重载是前端开发服务器配套的实时更新机制:修改源码保存后,浏览器自动同步最新代码效果,无需手动刷新页面、重启项目。如果没有热重载,每次调整样式、组件逻辑都要切换浏览器、手动刷新、重新填写表单、跳转对应页面,大量时间浪费在重复操作上,热重载大幅缩短「改代码→看效果」的反馈链路。
2. 两个极易混淆概念:Live Reload 自动刷新 VS HMR 热模块替换