实时重新加载、热重新加载和热模块替换之间的概念差异是什么?

What are the conceptual differences between live reloading, hot reloading, and hot module replacement?

我看过很多关于实时重载热重载热模块的帖子和出版物replacement,指的是在 web client/FE 层工作时在浏览器中立即反映代码更改的不同做法。

我很清楚这些术语指的是什么,我唯一的问题是这些概念是否在某处被正确定义,它们之间的具体区别是什么。

所以我今天刚遇到同样的问题,我认为分享我的发现很好:

实时重新加载 - 触发应用程序范围的重新加载以侦听文件更改

Hot Module Replacement - 与 Live Reload 相同,不同之处在于它只替换已修改的模块,因此称为替换。这样做的好处是它不会丢失您的应用程序状态,例如您在表单域中的输入、您当前选择的选项卡等。这里是 full-blown explanation from another SO answer

最后,Hot Reloading只是Hot Module Replacement的缩写。

这是一个解释性的video,您可以查看并区分 LR 和 HMR。