详解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 相关文章推荐
Knockout visible绑定使用方法
Nov 15 Javascript
jquery操作checkbox实现全选和取消全选
May 02 Javascript
初识Node.js
Sep 03 Javascript
使用jquery解析XML示例代码
Sep 05 Javascript
介绍JavaScript的一个微型模版
Jun 24 Javascript
JavaScript动态创建form表单并提交的实现方法
Dec 10 Javascript
极力推荐10个短小实用的JavaScript代码段
Aug 03 Javascript
超详细的JS弹出窗口代码大全
Apr 18 Javascript
详解vue渲染从后台获取的json数据
Jul 06 Javascript
jquery实现侧边栏左右伸缩效果的示例
Dec 19 jQuery
解决Vue 通过下表修改数组,页面不渲染的问题
Mar 08 Javascript
详解在React.js中使用PureComponent的重要性和使用方式
Jul 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
Terran兵种对照表
2020/03/14 星际争霸
php正则过滤html标签、空格、换行符的代码(附说明)
2010/10/25 PHP
深入PHP autoload机制的详解
2013/06/09 PHP
PHP实现数字补零功能的2个函数介绍
2014/05/12 PHP
excel操作之Add Data to a Spreadsheet Cell
2007/06/12 Javascript
表单填写时用回车代替TAB的实现方法
2007/10/09 Javascript
jQuery 操作XML入门
2008/12/25 Javascript
dojo随手记 gird组件引用
2011/02/24 Javascript
JavaScript中为什么null==0为false而null大于=0为true(个人研究)
2013/09/16 Javascript
jQuery中bind()方法用法实例
2015/01/19 Javascript
JavaScript实现广告的关闭与显示效果实例
2015/07/02 Javascript
将List对象列表转换成JSON格式的类实现方法
2016/07/04 Javascript
JavaScript数组操作详解
2017/02/04 Javascript
详解vue2.0脚手架的webpack 配置文件分析
2017/05/27 Javascript
webpack 单独打包指定JS文件的方法
2018/02/22 Javascript
jquery 给动态生成的标签绑定事件的几种方法总结
2018/02/24 jQuery
node 标准输入流和输出流代码实例
2019/09/19 Javascript
python日志记录模块实例及改进
2017/02/12 Python
python安装scipy的步骤解析
2019/09/28 Python
python图形用户接口实例详解
2019/12/16 Python
解决Jupyter notebook更换主题工具栏被隐藏及添加目录生成插件问题
2020/04/20 Python
Python使用sqlite3模块内置数据库
2020/05/07 Python
利用CSS3实现动态的二级三级菜单效果实例源码
2017/01/04 HTML / CSS
使用CSS3的box-sizing属性解决div宽高被内边距撑开的问题
2016/06/28 HTML / CSS
CSS3只让背景图片旋转180度的实现示例
2021/03/09 HTML / CSS
英国网上香水店:Fragrance Direct
2016/07/20 全球购物
NFL墨西哥官方商店:Tienda NFL
2017/11/28 全球购物
信息部岗位职责
2013/11/12 职场文书
运动会稿件100字
2014/02/21 职场文书
中文专业求职信
2014/06/20 职场文书
最美家庭活动方案
2014/08/31 职场文书
催款通知书范文
2015/04/17 职场文书
校园安全主题班会
2015/08/12 职场文书
2019年怎样才能撰写出优秀的自荐信
2019/03/25 职场文书
golang http使用踩过的坑与填坑指南
2021/04/27 Golang
Apache POI的基本使用详解
2021/11/07 Servers