页面刷新会调用 unmounted吗

1,081 阅读1分钟

在 Vue 中,当一个组件被卸载时,会触发 beforeUnmountunmounted 两个生命周期钩子函数。这意味着当你通过路由跳转或者手动调用 $destroy 方法销毁组件时,这两个钩子函数都会被调用。

但是,如果你在浏览器中进行页面刷新,Vue 实例和组件将会被完全销毁并重建。这意味着在页面刷新时,beforeUnmountunmounted 钩子函数都不会被调用。

这是因为页面刷新会导致当前的 Vue 实例和组件被彻底销毁,并且重新创建一个新的实例和组件。因此,在页面刷新时,之前的实例和组件已经不存在了,它们也就无法再执行任何生命周期钩子函数。

需要注意的是,如果你希望在页面刷新时做一些清理工作,可以监听 beforeunload 事件,在事件处理函数中执行相应的逻辑。例如:

window.addEventListener('beforeunload', function() {
  // 在这里执行一些清理工作
})

但是需要注意的是,这种方式并不能保证能够始终可靠地执行清理工作,因为在某些情况下(例如强制关闭浏览器),这个事件可能不会被触发。