详解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 Ajax异步读取RSS文档具体实现
Dec 12 Javascript
jQuery应用之jQuery链用法实例
Jan 19 Javascript
javascript去掉代码里面的注释
Jul 24 Javascript
javascript之Array 数组对象详解
Jun 07 Javascript
基于原生JS实现图片裁剪
Aug 01 Javascript
微信公众号 客服接口的开发实例详解
Sep 28 Javascript
实现JavaScript高性能的数据存储
Dec 11 Javascript
javascript使用btoa和atob来进行Base64转码和解码
Mar 20 Javascript
JS实现简易换图时钟功能分析
Jan 04 Javascript
Layui多选只有最后一个值的解决方法
Sep 02 Javascript
如何在微信小程序中存setStorage
Dec 13 Javascript
vue+vant使用图片预览功能ImagePreview的问题解决
Apr 10 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
php利用cookie实现自动登录的方法
2014/12/10 PHP
PHP session 会话处理函数
2016/06/06 PHP
thinkPHP中钩子的使用方法实例分析
2017/11/16 PHP
用JS实现的一个include函数
2007/07/21 Javascript
JQUERY实现左侧TIPS滑进滑出效果示例
2013/06/27 Javascript
图片上传判断及预览脚本的效果实例
2013/08/07 Javascript
Javascript基础教程之关键字和保留字汇总
2015/01/18 Javascript
jquery+html5烂漫爱心表白动画代码分享
2015/08/24 Javascript
JavaScript简单下拉菜单实例代码
2015/09/07 Javascript
jQuery使用$.ajax进行即时验证的方法
2015/12/08 Javascript
Jquery元素追加和删除的实现方法
2016/05/24 Javascript
JS构造函数与原型prototype的区别介绍
2016/07/04 Javascript
遍历json获得数据的几种方法小结
2017/01/21 Javascript
jQuery实现web页面樱花坠落的特效
2017/06/01 jQuery
javascript验证form表单数据的案例详解
2019/03/25 Javascript
vue权限问题的完美解决方案
2019/05/08 Javascript
Nuxt v-bind绑定img src不显示的解决
2019/12/05 Javascript
vue 使用v-for进行循环的实例代码详解
2020/02/19 Javascript
[01:02:06]LGD vs Mineski Supermajor 胜者组 BO3 第二场 6.5
2018/06/06 DOTA
python教程之用py2exe将PY文件转成EXE文件
2014/06/12 Python
Python入门之后再看点什么好?
2018/03/05 Python
Selenium(Python web测试工具)基本用法详解
2018/08/10 Python
如何更优雅地写python代码
2019/07/02 Python
Python 硬币兑换问题
2019/07/29 Python
python sqlite的Row对象操作示例
2019/09/11 Python
加拿大当代时尚服饰、配饰和鞋类专业零售商和制造商:LE CHÂTEAU
2017/10/06 全球购物
凯普林包包西班牙官网:Kipling西班牙
2019/04/12 全球购物
美国椅子和沙发制造商:La-Z-Boy
2020/10/25 全球购物
员工自我鉴定范文
2013/10/06 职场文书
十佳大学生村官事迹
2014/01/09 职场文书
素食餐饮项目创业计划书
2014/02/02 职场文书
2014高考励志标语
2014/06/05 职场文书
篮球比赛策划方案
2014/06/05 职场文书
大学生求职信
2014/06/17 职场文书
感恩教师节演讲稿
2014/09/03 职场文书
道歉的话怎么说
2015/05/12 职场文书