vue-amap TypeError: v.w.uh is not a constructor究极方案

vue-amap TypeError: v.w.uh is not a constructor


公司的后台系统需要对用户进行接单位置标点。我就想到了vue-amap,经过不断尝试终于把这玩意的坑走了一遍,上干货。

1:如何进行大量数据渲染,我们都知道浏览器一瞬间加载大量数据是会卡死的,这样对用户非常不友好,后来发现网上有很好的方案:分批加载。先把数据按拆分,利用setInterval分批加载数据,不一次性呈现数据,这样浏览器会依次加载数据,不至于卡死。
2:TypeError: v.w.uh is not a constructor,这个错误是因为界面加载地图还没加载完成造成的,我搜到的解决方案有很多:在这里我提出两个解决方案:

1:当我们在main.js引入并初始化vue-amap的时候,不要对当前界面路由进行懒加载,

const operationLog  = () => import('../views/operation-log/operation-log')

如果懒加载就会报错TypeError: v.w.uh is not a constructor
如果是直接import 路由文件就不会报错

import xxx from '../views/xxx/xxx.vue'

2:如果必须懒加载,
在main.js:不执行初始化

mport VueAMap from 'vue-amap'  
 Vue.use(VueAMap);

在vue界面:引入vue-amap 在当前vue文件的created中初始化,就不会报错。

import VueAMap from 'vue-amap'
created() {
    VueAMap.initAMapApiLoader({
      key: "your key",
      plugin: [
        "AMap.Autocomplete",
        "AMap.PlaceSearch",
        "AMap.Scale",
        "AMap.OverView",
        "AMap.ToolBar",
        "AMap.MapType",
        "AMap.PolyEditor",
        "AMap.CircleEditor"
      ],
      // 默认高德 sdk 版本为 1.4.4
      v: "1.4.4",
      uiVersion: "1.0.11" // 版本号
    });
  },

4:发现和CDN引入的高德地图冲突了怎么办?

解决方法:
在main.js:i
mport VueAMap from 'vue-amap'
Vue.use(VueAMap);
在vue界面:引入vue-amap  在created进行初始化,就不会报错。
import VueAMap from 'vue-amap'
 created() {
    VueAMap.initAMapApiLoader({
      key: "your key",
      plugin: [
        "AMap.Autocomplete",
        "AMap.PlaceSearch",
        "AMap.Scale",
        "AMap.OverView",
        "AMap.ToolBar",
        "AMap.MapType",
        "AMap.PolyEditor",
        "AMap.CircleEditor"
      ],
      // 默认高德 sdk 版本为 1.4.4
      v: "1.4.4",
      uiVersion: "1.0.11" // 版本号
    });
    this.getCityList(); //获取城市
    // await this.loadCarTypeList(); //获取车型
  },
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值