vue项目,data内存放大量数据,以及放在script内的优劣?

新手上路,请多包涵

vue项目,场景是使用百度地图,为了方便,我会将很多的地图对象的marker实例(点),label实例(文字),polygon实例(面)等覆盖物的实例存储都data字段内,但这会导致堆内存暴增,经过一次实例的计算,堆内存大概增加230+MB(手动刷新,存在一定几率的第一次刷新堆内存不回收),两个疑问,
1.这大量的堆内存暴增是否跟vue data的原理有关系?比如这些实例不可避免的有getter、setter。有没有办法规避掉,比如放在data内,但让vue不监听这个数据,类似这种操作。
2.数据量如果巨大,我要是放在.vue文件的script标签内会有什么明显缺点嘛?应该不算是全局变量。

阅读 6.5k
1 个回答

你可以把你不需要监听的数据 Object.freeze 一下再放data字段里,vue 会跳过监听这些对象,可以节省很多性能。
地图实例这些的话最好不要放 data 里,如你所言会有不可避免的 getter/setter,但 Object.freeze 也可能会导致对实例本身的一些操作失效。

数据放 script 标签还是 data 对象里,取决于你模板代码是否直接引用了这些数据,引用了就放 data 对象里。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题