![](/img/trans.png)
[英]HMR / Hot Module Replacement problem with Vue.js 3 & webpack 5
[英]Hook for HMR with Vue & webpack
当某些 Vue 组件通过热模块替换更新时,是否有设置挂钩的选项?
[HMR] App is up to date.
现在我想调用一些方法。
通过 webpack HMR 搜索我发现了两种方法: dispose
和removeDisposeHandler
。
添加在替换当前模块代码时执行的处理程序。 这应该用于删除您声明或创建的任何持久资源。 如果要将状态传输到更新的模块,请将其添加到给定的
data parameter
。 更新module.hot.data after
,此对象将在module.hot.data after
可用。
删除通过 dispose 或addDisposeHandler
添加的处理程序。
所以我在created
钩子中添加了dispose
并在destroyed
钩子中删除了它,如下所示:
export default {
methods: {
callback(data) {
console.log(data)
},
},
created() {
if (module.hot) {
module.hot.dispose(this.callback)
}
},
destroyed() {
if (module.hot) {
module.hot.removeDisposeHandler(this.callback)
}
},
}
我已经在我的 Vue CLI 应用程序中对其进行了测试,一切正常:它在此模块发生更改时调用,但在另一个模块更改时不调用。
@Javas,感谢提示。 我正在寻找的解决方案是:
module.hot.addStatusHandler(status => {
console.log('module hot status', status)
});
我将它放入我的入口文件中,如果任何组件被热重载,则每次都会调用它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.