问题

在vue项目中使用了iframe,iframe和vue页面交互使用了postMessage,如下代码,发现一个bug,重新进入这个页面,1就会多打印,次数和进入页面的次数相同

//iframe
window.parent.postMessage({
   info:2
})
//di.vue
mounted(){
    window.removeEventListener('message,this.diHandler)
    window.addEventListener('message',this.diHandler);
}
methods:{
  diHandler(){
     console.log(1)
  }
}

解决

vue的生命周期中又一句话:updateDestory用于做事件的解绑....

问题解决了

具体原理等我之后在补充

//di.vue
mounted(){    
    window.addEventListener('message',this.diHandler);
},
updateDestory(){
    window.removeEventListener('message,this.diHandler)
},
methods:{
  diHandler(){
     console.log(1)
  }
}

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-11-15
  • 2021-12-09
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-03
  • 2021-10-08
  • 2022-12-23
相关资源
相似解决方案