国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

詳解vue.js下引入百度地圖jsApi的兩種方法

2024-05-06 15:32:25
字體:
來源:轉載
供稿:網友

前言

今天有個項目需要用到百度地圖,一般我們在移動端使用百度地圖,都是直接通過這樣的方式,直接引入百度地圖的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.jsexternals: {  '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的。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 宁阳县| 霍林郭勒市| 西乌珠穆沁旗| 岚皋县| 安泽县| 麻江县| 海阳市| 即墨市| 汉中市| 永清县| 奈曼旗| 顺平县| 盐城市| 土默特左旗| 建宁县| 藁城市| 宁乡县| 榆树市| 石河子市| 县级市| 根河市| 呈贡县| 禄劝| 农安县| 安庆市| 聊城市| 驻马店市| 镇康县| 郓城县| 宝应县| 澜沧| 华宁县| 淳安县| 安泽县| 永胜县| 泰州市| 滦平县| 图木舒克市| 延寿县| 高雄市| 丰宁|