Home > Web Front-end > JS Tutorial > How to introduce Baidu Map's jsApi under vue.js? Introduction to two methods of introducing Baidu Map's jsApi

How to introduce Baidu Map's jsApi under vue.js? Introduction to two methods of introducing Baidu Map's jsApi

不言
Release: 2018-07-27 10:56:27
Original
1792 people have browsed it

This article introduces you to the article about how to introduce the jsApi of Baidu Map under vue.js? This introduction to the two methods of introducing Baidu Map's jsApi has a good reference value. I hope it can help friends in need.

Preface

Today there is a project that needs to use Baidu Map. Generally, when we use Baidu Map on the mobile terminal, we directly introduce the jsApi of Baidu Map in this way.

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

The principle of this method is to directly add a BMap object to the global window object, so that we can use Baidu Map's API anywhere on the page where the API has been loaded. But the introduction method alone is obviously not enough for projects developed with vue webpack using single-file components. So, I looked up information online. Two methods are found here.

Introducing script tags directly

The first method is through direct introduction. Of course, it is not enough to introduce script tags. If you want to use bmap objects in vue files, you also need to add them to webpack. In the configuration file, set the external extensions (externals attribute)

//webpack.dev.conf.js

externals: {
    'BaiduMap': 'BMap'
}
Copy after login

The official explanation of the externales attribute is:

Prevent certain imported packages from being packaged into the bundle, but in At runtime, these external dependencies are obtained from the outside.

The webpack documentation also gives an example: importing jQuery from a CDN instead of packaging it.
index.html

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

webpack.config.js

externals: {
  jquery: 'jQuery'
}
Copy after login
import $ from 'jquery';

$('.my-element').animate(...);
Copy after login

Referring to this example, we can directly use Baidu Map’s API by introducing js files in our project .

import BaiduMap from 'BaiduMap'
export default {
    name: 'Index',
    .....
Copy after login
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) // 将标注添加到地图中

}
Copy after login

Note here that instantiating the map api is best done in the mounted stage. If your dom uses official examples such as

<p id="allmap"></p>
Copy after login

, because only in the mounted stage, dom will be generated and mounted.

Method introduced through modularization

In fact, Baidu Map official has open sourced the corresponding open source components of vue and react based on jsApi last year. We can install them directly through npm and then use them.
VUE:[https://github.com/Dafrok/vue...]
React:[https://github.com/huiyan-fe/...]
You can refer to them at Use the documentation on github. Here we only introduce vue.
Installation

npm i vue-baidu-map --save
Copy after login

Initialization

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

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

Use

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

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

Related recommendations:

How does vue encapsulate components? How to encapsulate vue tab switching components (with code)

Detailed analysis of Vue custom instructions and instruction definition functions (code)

The above is the detailed content of How to introduce Baidu Map's jsApi under vue.js? Introduction to two methods of introducing Baidu Map's jsApi. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template