Vue 使用百度地图BMapGL内存泄漏问题,Out of Memory
在项目中使用了ElementUI 的 drawer 组件有地图操作,并开启了 :destroy-on-close=“true” 。开关多次以后浏览器崩溃了。
刷新页面,打开任务管理器,复现刚刚的操作,会发现浏览器的内存占用一直在增加
解决
- 对象不定义在data中
initMap(){
map = new BMapGL.Map("allMap") // 创建Map实例
}
- 在vue中组件使用 v-if 指令会从dom中移除,但不会清除地图实例,所以要在销毁钩子里对地图进行销毁
beforeDestroy() {
map.destroy()
map = null
},