首先总结一下我出现偏移的原因我认为是,在地图的相关属性(比如说center,zoom等等)还未来得及赋值时,地图组件就已经开始初始化了,尽管我给了这些属性初始值,还是会有这个问题,我只能理解为地图加载的速度比我初始值加载的速度还要快些
思路:如果你的情况和我下面的不一样,那我就说下思路。通过v-if来控制地图组件的出现,尽可能让地图组件在它的相关属性都加载完成之后再出现。比如说你的center是通过请求接口数据来赋值的,那你就在请求接口数据给center赋值之后,再让v-if里的值为true,这样应该就没问题了。如果理解到了就可以不用看下面的代码了
先上我之前的代码
我的地图代码是在一个表单里的,这个表单被封装成了一个组件,在需要的时候才会调用,如果你是我和一样的情况,那就在控件里加一个v-if
这个zhanshi变量的默认值为false,然后当我调用这个组件时,如下图
在子组件通过props属性接收这个值
然后通过watch监控,当这个属性值发生变化时,证明我在调用这个组件了,这个时候才让zhanshi = true,这时候你和地图相关的属性早就已经加载完了(比如center,zoom等等),这时候再显示地图就不会存在偏移了