vue2项目内XbsjEarth报多个问题,均与XbsjEarth内置的状态管理器mobx相关,该如何解决?

前言

有个feature分支的代码,需要手动合并到主线上,该项目由Vue2CesiumXbsjEarth构成的三维系统,在运行项目时,却报了如下图的错误:
在这里插入图片描述

定位问题

首先,我猜想是不是XbsjEarth的初始化有问题,跑去看其源码,和github的issues,却没有找到问题原因

其次,我根据报错问题,去google搜索,仍然没有定位出问题

最后,是最最无奈的一种办法,那便是排除法,将该项目引用到的所有功能组件一一屏蔽查找,终于发现有问题的Vue文件,该文件的问题代码如下所示:
在这里插入图片描述
竟然将cesium对象挂载到vuedata中,data里所有的对象(比如你定义了target: { person: { name: 'zwf'} })会默认给targetpersonname等添加gettersetter方法,这意味着cesium对象里的所有属性都是响应式,会给系统性能带来极大地损耗。

cesium等一切相关对象,皆不能定义在vue的data里,将this.cesium去掉,采用window._cesium全局对象,问题便迎刃而解了

结语

以上便是我遇到问题的解决思路,希望能对大家有所启发

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值