
平時在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選項里面