vue-baidu-map 覆盖物显隐控制
工作需要使用 vue-baidu-map,但是像这种服务于大众的插件,好多自己的特殊情况是满足不了的,掰扯了半天,发现在上面添加的覆盖物,除了自定义覆盖物外,其他的都没法控制显示隐藏.或许是可以控制,但我没有找到,这可如何是好.
然后就想到了用v-if来控制:
<div v-if="show">
<bm-polyline ... ></bm-polyline>
</div>
如此,达到要求了,但是问题来了:
- 多个覆盖物同时存在的时候,用v-if控制显隐的时候,覆盖物的叠放顺序发生了变化.
- bm-driving组件是个异步的道路索引,v-if把它干掉以后,等会找到的道路还是会出现.
几经苦思冥想,然后想到了用数据控制显隐,把这些组件都封装了一层,在接受个参数show是ture的时候使用正常的数据,在接受的参数show是false的时候,给个空数据或者无效数据.
例如polyline:
<template>
<bm-polyline
:path="mpoints"
:strokeColor="mColor"
:strokeWeight="mwidth"
:strokeOpacity="mopacity"
></bm-polyline>
</template>
<script>
export default {
name:'ls_map_polyline',
props:['show','points','color','width','opacity'],
computed:{
mpoints(){
if(typeof this.show == 'undefined' || this.show){
return this.points || [{lng:116.404,lat:39.915},{lng:116.375,l