React實戰-如何在ReactJs中呼叫Google、Baidu地圖
React實戰-如何在ReactJs中呼叫Google、Baidu地圖
在這個網際網路時代,對地圖的運用已經成為Web、移動各類應用的必選項。國內外各大地圖應用提供商均有開放的Api供大家使用,當然更具使用的功能會提供付費版和免費版,如果僅僅只是小的應用或者練手,完全可以呼叫其免費版。呼叫的方式也很簡單,跟你呼叫其他的第三方庫類似。但是由於ReactJs的實現方式存在一些特殊性,其呼叫Google地圖(百度類似)也有細微差異(weixin: react-javascript)。
1.傳統網頁呼叫Google地圖方式
傳統網頁呼叫Google地圖的方式主要分以下基本:
a.註冊Google介面呼叫的
由於呼叫Google介面需要輸入Key,Key是Google賦予你的訪問許可權,各型別的Key不一樣,如果你採用ReactJS,你還是申請支援瀏覽器呼叫的Key。
b.引入Google的js庫
同所有的js庫一樣,需要引入Google的Js庫,不同的是路徑要加入key的值。
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=AIzaSyA_qPoEzvCB8SYeHzpeI">
c.配置地圖引數,建立地圖
function initmap() {
var mapOptions = {
center: { lat: 42.872, lng: 3.644},
zoom: 3
};
var map = new google.maps.Map(document.getElementById('example'),
mapOptions);
}
google.maps.event.addDomListener(window, 'load', initmap);
2.ReactJs中如何呼叫Google的API
在ReactJs中呼叫Google步驟相同,不同的是在最終的呼叫時存在差異,你依然需要做以下三步:
a.註冊Google介面呼叫的key
b.引入Google的js庫
c.在ReactJs元件中呼叫
在ReactJs中你可以將地圖配置資訊以任何你認為合適的方式傳人googlemap的建構函式,不同的是:
l 我們不需要google.maps.event.addDomListener(window, 'load', initmap);
在ReactJs元件中,一般頁面原始初始化放在componentDidMount()函式中,暫且把初始化資料getInitialState中。如:
getInitialState(){
return {
mapconfig:{
center: { lat: 42.872, lng: 3.644},
zoom: 3
}
}
},
componentDidMount(){
new window.google.maps.Map(
this.refs.map,
this.state.mapconfig);
},
l 我們也不採用document.getElementById('example')
上面的程式碼中你可以看到我們不要getElementById,而是採用refs。相應的頁面元素也應定義ref.
<div ref="map" style={{width: 400, height:400, }} />
3.特別注意的地方
從實現程式碼可以看出,我們並沒有發明創造,只是將原有實現方式變的符合React的實現機制。但是尤其要注意的是。我們在頁面引入js庫,在元件中呼叫時應採用window.google.maps,如果你少了window,則編譯無法通過,找不到google物件了,切記!
4.相關程式碼
原始碼位置:[email protected]:chenhuitian/react.git(googlemap-react)
相關推薦
React實戰-如何在ReactJs中呼叫Google、Baidu地圖
React實戰-如何在ReactJs中呼叫Google、Baidu地圖 在這個網際網路時代,對地圖的運用已經成為Web、移動各類應用的必選項。國內外各大地圖應用提供商均有開放的Api供大家使用,當然更具使用的功能會提供付費版和免費版,如果僅僅只是小的應用或者練手,完全可以呼
搜尋引擎 查詢引數彙總(google、baidu、yahoo) 繼續更新中。。
google、baidu、yahoo等搜尋引擎 查詢引數 谷歌搜尋引擎搜尋程式碼引數:(google.com) lr--搜尋內容的語言限定(Language Restrict),限定只搜尋某種語言的網頁。 如果lr引數為空,則為搜尋所有網頁。 常用的有: lr=lang
網頁中嵌入GOOGLE、百度搜索
<SCRIPT language=javascript>function gowhere1(formname){ var url; if (formname.myselectvalue.value =="0") { url ="http://www.baidu.com/baidu"; docu
2018/10/03-函式呼叫約定、cdecl、stdcall、fastcall- 《惡意程式碼分析實戰》
cdecl是最常用的約定之一,引數是從右到左按序被壓入棧,當函式完成時由呼叫者清理棧,並且將返回值儲存在EAX中。 stdcall約定是被呼叫函式負責清理棧,其他和cdecl非常類似。 fastcall呼叫約定跨編譯器時變化最多,但是它總體上在所有情況下的工作方式都是相似的。在fastcall
python中呼叫R語言通過rpy2 進行互動安裝配置詳解(R_USER、R_HOME配置)
python中呼叫R語言通過rpy2 進行詳解 文章目錄 python中呼叫R語言通過rpy2 進行詳解 1.R語言的安裝: 2.Rpy2工具的安裝和配置 3.pycharm中使用R語言配置
實戰c++中的vector系列--vector的遍歷(stl演算法、vector迭代器(不要在迴圈中判斷不等於end())、operator[])【轉】
(轉自:https://blog.csdn.net/wangshubo1989/article/details/50374914?utm_source=blogxgwz29) 遍歷一個vector容器有很多種方法,使用起來也是仁者見仁。 通過索引遍歷: for (i = 0; i<
react native中封裝別的外掛,在父元件中呼叫子元件的ref
話不多說,直接上程式碼: 父元件中: import MyToast from '../../myToast'; <MyToast onRef={toast => this.toast = toast} position="center" /> 子元件中: impor
jquery中匿名函式、選擇器、方法呼叫、繫結事件
轉載地址: https://blog.csdn.net/ideality_hunter/article/details/77935656 http://www.cnblogs.com/si-shaohua/p/3760286.html https://www.cnblogs.com/de
Google、Facebook、GitHub、Babel核心成員齊聚,第13屆D2前端技術論壇搶票進行中
由阿里巴巴前端委員會舉辦的第13屆D2前端技術論壇將於2019年1月6日在杭州舉辦。 本次會議將設定3個分會場,6大主題方向,邀請國內外嘉賓為大家帶來精彩的演講。分享的內容不僅包括未來方向型前沿的內容,同時也有實踐經驗的分享。 如果你對大會感興趣,可以檢視大會官方網站:https://d2forum.a
靜態程式碼塊、構造器、靜態方法在類中呼叫的先後順序關係
package test; /* * 當一個類中,有靜態方法、靜態程式碼塊、構造方法時; * 如果 初始化該類,new一個物件,則會 * 1,先呼叫靜態程式碼塊; * 2. 再呼叫構造器,初始化該物件; * 3.靜態方法需要被主動顯式呼叫; * 可通過以下簡單
深入解析React中的元素、元件、例項和節點
React 深入系列,深入講解了React中的重點概念、特性和模式等,旨在幫助大家加深對React的理解,以及在專案中更加靈活地使用React。 React 中的元素、元件、例項和節點,是React中關係密切的4個概念,也是很容易讓React 初學者迷惑的4個概念。現在,我就來詳細地介紹這4個概念
在kettle中使用java直接呼叫transformation、job檔案執行
目前在做一個專案,需要用到資料清洗,因為kettle是開源的,所以就選擇了它。目前遇到的困難是,在建立好轉換(transformation)或任務(job)後,需要整合到java程式碼中,以便和其他功能
Android開發:如何在選單中呼叫控制元件(如Button、TextView……)
當我們在類內定義控制元件的全域性變數時,如Button……,只能在onCreate()中初始化,這樣的控制元件變數引用在選單中不好引用,會報錯。 如果想在選單中呼叫控制元件,可以在選單中重新定義控制元件
Go實戰--golang中操作PDF(rsc.io/pdf、jung-kurt/gofpdf、signintech/gopdf)
生命不止,繼續 go go go !!! 那麼今天就跟大家分享一下,golang中如何操作PDF。 PDF簡介 The Portable Document Format (PDF) is a file format used to present do
ASP中呼叫儲存過程、語法、寫法-sql server資料庫,return,output
ASP與儲存過程(Stored Procedures)的文章不少,但是我懷疑作者們是否真正實踐過。我在初學時查閱過大量相關資料,發現其中提供的很多方法實際操作起來並不是那麼回事。對於簡單的應用,這些資料也許是有幫助的,但僅限於此,因為它們根本就是千篇一律,互相抄襲,稍微複雜
【React自制全家桶】四、React中state與props的分析與比較
一.state 1.state的作用 state是React中元件的一個物件.React把使用者介面當做是狀態機,想象它有不同的狀態然後渲染這些狀態,可以輕鬆讓使用者介面與資料保持一致. React中,更新元件的state,會導致重新渲染使用者介面
瀏覽器中使用js呼叫Activex、NPAPI開啟串列埠並收發資料
IE瀏覽器中訪問COM口收發資料,可以訪問com口印表機、GSM 貓、手機、串列埠掃描槍等裝置,支援使用HEX 位元組傳送接收,更好地支援各種COM口裝置,可以用於web系統中訪問串列埠或者虛擬串列埠的硬體裝置。為火狐瀏覽器和chrome瀏覽器製作的介面可以是串列埠控制元件在
實戰c++中的string系列--string與char*、const char *的轉換(data() or c_str())
在工程中,我們也有很多時候用到string與char*之間的轉換,這裡有個一我們之前提到的函式 c_str(),看看這個原型: const char *c_str(); c_str()函式返回一個指向正規C字串的指標, 內容與本string串相同. 這
獲取iframe中的內容、查詢獲取指定元素(關於用c++呼叫WEBBROWSER控制元件,使用相關介面操作web頁面元素的一些方法)
最近開發WINDOWS下的應用程式,需要用到C++中呼叫WEBBROWSER控制元件操作網頁的相關技術,查閱了一下相關文件,反覆除錯了幾天,對其中的技術有了一些膚淺的認識,大多數C++程式設計師對COM應該不陌生,其實用C++操作網頁,在前端應用層上主要就是對COM介面的查
Linux shell指令碼中呼叫另一個shell(exec、source、fork)
最近在研究yarn的原始碼,在看到YarnChild的啟動指令碼時,看到啟動的時候用到了shell中得exec命令,比較好奇為什麼使用exec,網上找了一下這個命令和類似命令的使用方法,原文地址:http://qujunorz.blog.51cto