1. 程式人生 > >React實戰-如何在ReactJs中呼叫Google、Baidu地圖

React實戰-如何在ReactJs中呼叫Google、Baidu地圖

React實戰-如何在ReactJs中呼叫GoogleBaidu地圖

在這個網際網路時代,對地圖的運用已經成為Web、移動各類應用的必選項。國內外各大地圖應用提供商均有開放的Api供大家使用,當然更具使用的功能會提供付費版和免費版,如果僅僅只是小的應用或者練手,完全可以呼叫其免費版。呼叫的方式也很簡單,跟你呼叫其他的第三方庫類似。但是由於ReactJs的實現方式存在一些特殊性,其呼叫Google地圖(百度類似)也有細微差異(weixin: react-javascript)。

1.傳統網頁呼叫Google地圖方式

傳統網頁呼叫Google地圖的方式主要分以下基本:

a.註冊Google介面呼叫的

key

由於呼叫Google介面需要輸入KeyKeyGoogle賦予你的訪問許可權,各型別的Key不一樣,如果你採用ReactJS,你還是申請支援瀏覽器呼叫的Key

b.引入Googlejs

同所有的js庫一樣,需要引入GoogleJs庫,不同的是路徑要加入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中如何呼叫GoogleAPI

ReactJs中呼叫Google步驟相同,不同的是在最終的呼叫時存在差異,你依然需要做以下三步:

a.註冊Google介面呼叫的key

b.引入Googlejs

c.ReactJs元件中呼叫

ReactJs中你可以將地圖配置資訊以任何你認為合適的方式傳人googlemap的建構函式,不同的是:

我們不需要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);    

  },

我們也不採用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.gitgooglemap-react

相關推薦

React實戰-如何在ReactJs呼叫GoogleBaidu地圖

React實戰-如何在ReactJs中呼叫Google、Baidu地圖 在這個網際網路時代,對地圖的運用已經成為Web、移動各類應用的必選項。國內外各大地圖應用提供商均有開放的Api供大家使用,當然更具使用的功能會提供付費版和免費版,如果僅僅只是小的應用或者練手,完全可以呼

搜尋引擎 查詢引數彙總(googlebaiduyahoo) 繼續更新。。

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-函式呼叫約定cdeclstdcallfastcall- 《惡意程式碼分析實戰

  cdecl是最常用的約定之一,引數是從右到左按序被壓入棧,當函式完成時由呼叫者清理棧,並且將返回值儲存在EAX中。   stdcall約定是被呼叫函式負責清理棧,其他和cdecl非常類似。   fastcall呼叫約定跨編譯器時變化最多,但是它總體上在所有情況下的工作方式都是相似的。在fastcall

python呼叫R語言通過rpy2 進行互動安裝配置詳解(R_USERR_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

GoogleFacebookGitHubBabel核心成員齊聚,第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直接呼叫transformationjob檔案執行

目前在做一個專案,需要用到資料清洗,因為kettle是開源的,所以就選擇了它。目前遇到的困難是,在建立好轉換(transformation)或任務(job)後,需要整合到java程式碼中,以便和其他功能

Android開發:如何在選單呼叫控制元件(如ButtonTextView……)

當我們在類內定義控制元件的全域性變數時,如Button……,只能在onCreate()中初始化,這樣的控制元件變數引用在選單中不好引用,會報錯。 如果想在選單中呼叫控制元件,可以在選單中重新定義控制元件

Go實戰--golang操作PDF(rsc.io/pdfjung-kurt/gofpdfsignintech/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自制全家桶】四Reactstate與props的分析與比較

一.state   1.state的作用     state是React中元件的一個物件.React把使用者介面當做是狀態機,想象它有不同的狀態然後渲染這些狀態,可以輕鬆讓使用者介面與資料保持一致.      React中,更新元件的state,會導致重新渲染使用者介面

瀏覽器使用js呼叫ActivexNPAPI開啟串列埠並收發資料

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(execsourcefork)

        最近在研究yarn的原始碼,在看到YarnChild的啟動指令碼時,看到啟動的時候用到了shell中得exec命令,比較好奇為什麼使用exec,網上找了一下這個命令和類似命令的使用方法,原文地址:http://qujunorz.blog.51cto