平时在vue开发中,我们都习惯把所有数据挂载到vue的data对象上,这样做大大简化了我们的开发流程,响应式数据简直不要太爽
但是,针对地图业务的开发,使用了cesium这个开源库的话,其实完全不建议把整个库,这么庞大的对象直接挂载到vue的data对象上,因为data选项会把数据里面所有的属性都转换成get,set,所以这样造成的后果就是严重影响系统运行效率
个人来说对于data选项来说,只适合存储一些需要和界面响应的数据,如果有些数据完全不需要和界面联动起来,那根本没必要把这些数据保存在data选项里面
回到cesium+vue开发上来说,最好的方法就是,直接通过vuex把viewer对象挂载在window对象上就可以,这样就可以全局获取到viewer对象。另外一种方法是,如果没用到vuex,可以通过bus事件的方式在每个组件间传递viewer对象
另外需要注意的是,cesium从1.63版本开始已经重构了各个模块,抛弃了cmd模块,采用了es6模块,所以以上版本也可以按需引入,减少打包后的依赖大小,进而提高系统运行效率
最后再次提醒,vue组件的data选项,只存储和UI关联的数据,没关联的一定不要存储在data选项里面