您好,登錄后才能下訂單哦!
如何在vue.js中引入百度地圖jsApi?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
Vue具體輕量級框架、簡單易學、雙向數據綁定、組件化、數據和結構的分離、虛擬DOM、運行速度快等優勢,Vue中頁面使用的是局部刷新,不用每次跳轉頁面都要請求所有數據和dom,可以大大提升訪問速度和用戶體驗。
第一種方法是通過直接引入的方法,當然除了引入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>
看完上述內容,你們掌握如何在vue.js中引入百度地圖jsApi的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。