详解vue.js下引入百度地图jsApi的两种方法


Posted in Javascript onJuly 27, 2018

前言

今天有个项目需要用到百度地图,一般我们在移动端使用百度地图,都是直接通过这样的方式,直接引入百度地图的jsApi。

<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=D9b45bc6f98deafc489e9ac1bc7f7612"></script>

这种方法的原理,就是直接给全局widow对象添加一个BMap对象,从而可以使我们在已经加载api的页面的任何地方,使用百度地图的api。但是单单通过引入的方法,对于使用单文件组件的vue+webpack开发的项目,显然是不够的。于是,通过网上查资料。这里找到了两种方法。

直接引入script标签

第一种方法是通过直接引入的方法,当然除了引入script标签还不够,要想在vue文件中使用bmap对象,还需要在webpack的配置文件中,设置外部扩展(externals属性)

//webpack.dev.conf.js

externals: {
  'BaiduMap': 'BMap'
}

externales属性来自官方的解释是:

防止将某些 import 的包(package)打包到 bundle 中,而是在运行时(runtime)再去从外部获取这些扩展依赖(external dependencies)。

webpack文档也给出了一个示例:从 CDN 引入 jQuery,而不是把它打包。

index.html

<script
 src="https://code.jquery.com/jquery-3.1.0.js"
 integrity="sha256-slogkvB1K3VOkzAI8QITxV3VzpOnkeNVsKvtkYLMjfk="
 crossorigin="anonymous">
</script>

webpack.config.js

externals: {
 jquery: 'jQuery'
}
import $ from 'jquery';

$('.my-element').animate(...);

参考这个实例,我们就可以在我们的项目中通过引入js文件的方法,直接使用百度地图的api。

import BaiduMap from 'BaiduMap'
export default {
  name: 'Index',
  .....
mounted() {
    
  var map = new BaiduMap.Map('allmap')            // 创建地图实例
  var point = new BaiduMap.Point(120.343373,31.540212)    // 创建中心点坐标
  var marker = new BaiduMap.Marker(point) // 创建标注

  map.centerAndZoom(point,15)             // 初始化地图,设置中心点坐标和地图级别


  map.addOverlay(marker) // 将标注添加到地图中

}

注意这里,实例化地图api,最好要在mounted阶段进行,如果你的dom中采用的是官方的示例如

<div id="allmap"></div>

因为只有在mounted的阶段,dom才会生成并挂载。

通过模块化引入的方法

实际上百度地图官方去年已经开源了基于jsApi的vue和react的对应开源组件,我们可以直接通过npm安装,然后使用。

VUE:https://github.com/Dafrok/vue-baidu-map

React: https://github.com/huiyan-fe/react-bmap

可参考它们在github上面的文档进行使用。这里只介绍下vue的。

安装

npm i vue-baidu-map --save

初始化

import Vue from 'vue'
import BaiduMap from 'vue-baidu-map'

Vue.use(BaiduMap, {
 ak: 'YOUR_APP_KEY'  //这个地方是官方提供的ak密钥
})

使用

<template>
 <baidu-map class="map">
 </baidu-map>
</template>

<style>
/* The container of BaiduMap must be set width & height. */
.map {
 width: 100%;
 height: 300px;
}
</style>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript 模拟JQuery的Ready方法实现并出现的问题
Dec 06 Javascript
JQuery 拾色器插件发布-jquery.icolor.js
Oct 20 Javascript
用jquery中插件dialog实现弹框效果实例代码
Nov 15 Javascript
js实例属性和原型属性示例详解
Nov 23 Javascript
javascript下拉框选项单击事件的例子分享
Mar 04 Javascript
vue.js入门教程之计算属性
Sep 01 Javascript
Vue.js组件使用开发实例教程
Nov 01 Javascript
Javascript使用function创建类的两种方法(推荐)
Nov 19 Javascript
javascript 数据存储的常用函数总结
Jun 01 Javascript
js实现金山打字通小游戏
Jul 24 Javascript
js+css实现扇形导航效果
Aug 18 Javascript
解决elementui表格操作列自适应列宽
Dec 28 Javascript
JavaScript中为事件指定处理程序的五种方式分析
Jul 27 #Javascript
浅谈Redux中间件的实践
Jul 27 #Javascript
JavaScript多态与封装实例分析
Jul 27 #Javascript
Vue配合iView实现省市二级联动的示例代码
Jul 27 #Javascript
react native 文字轮播的实现示例
Jul 27 #Javascript
Vue render渲染时间戳转时间,时间转时间戳及渲染进度条效果
Jul 27 #Javascript
浅析Vue项目中使用keep-Alive步骤
Jul 27 #Javascript
You might like
GD输出汉字的函数的分析
2006/10/09 PHP
smtp邮件发送一例
2006/10/09 PHP
PHP Parse Error: syntax error, unexpected $end 错误的解决办法
2012/06/05 PHP
在PHP语言中使用JSON和将json还原成数组的方法
2016/07/19 PHP
基于PHP制作验证码
2016/10/12 PHP
PHP实现简单的模板引擎功能示例
2017/09/02 PHP
php打开本地exe程序,js打开本地exe应用程序,并传递相关参数方法
2018/02/06 PHP
thinkPHP框架实现多表查询的方法
2018/06/14 PHP
jQuery Ajax方法调用 Asp.Net WebService 的详细实例代码
2011/04/27 Javascript
javascript高级学习笔记整理
2011/08/14 Javascript
jQuery中each()方法用法实例
2014/12/27 Javascript
jquery仿百度百科底部浮动导航特效
2015/08/08 Javascript
实践中学习AngularJS表单
2016/03/21 Javascript
javascript中利用柯里化函数实现bind方法【推荐】
2016/04/29 Javascript
Jquery uploadify 多余的Get请求(404错误)的解决方法
2017/01/26 Javascript
vue2的todolist入门小项目的详细解析
2017/05/11 Javascript
基于vue.js的分页插件详解
2017/11/27 Javascript
vue+element tabs选项卡分页效果
2020/06/29 Javascript
vue实现页面内容禁止选中功能,仅输入框和文本域可选
2019/11/09 Javascript
ant design实现圈选功能
2019/12/17 Javascript
JavaScript实现多文件下载方法解析
2020/08/07 Javascript
Python实现的弹球小游戏示例
2017/08/01 Python
python mysql 字段与关键字冲突的解决方式
2020/03/02 Python
Python基础类继承重写实现原理解析
2020/04/03 Python
HTML5 新事件 小结
2009/07/16 HTML / CSS
日本最大的药妆连锁店:Matsukiyo松本清药妆店
2017/11/23 全球购物
Ben Sherman官方网站:英国男装品牌
2019/10/22 全球购物
美国名牌香水折扣网站:Hottperfume
2021/02/10 全球购物
大学活动策划书范文
2014/01/10 职场文书
小学二年级学生评语
2014/04/21 职场文书
党在我心中的演讲稿
2014/09/13 职场文书
入股协议书范本
2014/11/01 职场文书
学雷锋日活动总结
2015/02/06 职场文书
加班费申请报告
2015/05/15 职场文书
企业法律事务工作总结
2015/08/11 职场文书
2016秋季运动会前导词
2015/11/25 职场文书