QIANKUN-微前端子项目winodw对象

308 阅读1分钟

需求

  • 在子应用中编写页面
  • 页面刷新/关闭时触发事件保存数据

问题

  • 开发环境使用window.onbeforeunload监听是可行的
  • 但是发布到测试环境发现事件失效了

分析

  • QIANKUN嵌入的子应用中,window对象是一个Proxy对象,并且一些全局对象都禁止访问

5b067acd-8b11-4f19-8524-6ee4fe0b62af.jpeg

  • 但是它也暴露出来一个addEventListener方法供子应用调用
  • 所以要用到winodw的监听方法都需要需要使用addEventListener方法添加

为什么第一选择是onbeforeunload而不愿意使用addEventListener

  • 重复监听问题,因为addEventListener触发多次的话会添加多次监听,虽然有removeEventListener可以解决这个问题,毕竟多了一行代码不是