滥用vue的data会严重影响性能

问题

在使用vue开发一个地图相关的项目时,把地图相关的对象都定义到了vue组件的data里,造成地图页面非常卡顿,一直找不到问题所在,后来发现由于vue会深度监听挂载data上的对象,而第三方地图相关的对象内容很多,层级很深,这就造成了在赋值给组件this时,页面严重卡顿的现场

解决方法

把地图相关的地图定义到组件外部,既定义到export default { } 外部,同理,不需要监听响应变化的变量都尽量不要挂载到data上,如:

let myMap;
export default {
  data () { 
    return {   // 不需要绑定到模板上的变量尽量不在data里定义
    }
  },
  methods: {
    initMap () {
      // this.myMap = new SelfMap()   // 不要定义在this上 
      myMap = new SelfMap()
    }
  }
}
#注意问题
定义在export default 外的变量是该组件共用的,注意在beforeDestrory中清除,在初始化时(mounted)重新赋值
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容