具体是这么引入的
methods: {
loadMap() {
return new Promise(function(resolve, reject) {
window.init = function() {
resolve(qq);
};
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "https://map.qq.com/api/js?v=2.exp&callback=init";
script.onerror = reject;
document.head.appendChild(script);
});
},
init() {
var mapLatlng = new qq.maps.LatLng(39.916527, 116.397128);
var mapOptions = {
center: mapLatlng,
zoom: 9
};
var mapId = document.getElementById(this.idName);
var mapQQ = new qq.maps.Map(mapId, mapOptions);
}
},
created() {
var self = this;
this.loadMap().then(function() {
self.init();
});
}
这样引入 使用上没有问题 但是在打包时候会提示'qq' is not defined
,
网上有看到类似这样的解决方法, 但是vue cli 3.0 只有vue.config.js文件配置。不太会。
我没有配置,用了另一个解决方案:
在所有出现
qq
的地方多换成:window.qq
我试了本地和 build 在 3 版本下面都是好的