일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- chart responsive
- classList remove
- set()
- 간식금지다!
- classList toggle
- 2020
- react-router-dom
- 안짤렸다
- 내배위의고양이
- 리엑트할수있는퍼블리셔라규
- 퍼블리싱
- 배열중복제거
- 방심은금물
- 냥빨이다가온다
- new set()
- react-router
- 클래스 토글
- ROUTER 버전6
- 포트폴리오
- 언젠간가겠지
- 를
- 접근성
- 커스텀훅
- 대표님물리기없기
- chart.js
- classList
- classList add
- windowwidth
- react
- className
Archives
- Today
- Total
틈
[REACT] kakao지도 본문
react에서 kakao지도를 추가할 때
1. header에 script 코드를 동적으로 넣어준다.(useEffect사용)
useEffect(() => {
const script = document.createElement("script");
script.src =
"//dapi.kakao.com/v2/maps/sdk.js?appkey=bfd444b07ffd852d15ab9bfa726c6b6a";
document.head.appendChild(script);
}, []);
2. 동적으로 추가할 경우 주의사항 ( 문서 확인하기 )
script.src =
"//dapi.kakao.com/v2/maps/sdk.js?appkey=bfd444b07ffd852d15ab9bfa726c6b6a&autoload=false";
const container = document.getElementById("map");
window.kakao.maps.load(() => {
var options = {
//지도를 생성할 때 필요한 기본 옵션
center: new window.kakao.maps.LatLng(33.450701, 126.570667), //지도의 중심좌표.
level: 3, //지도의 레벨(확대, 축소 정도)
};
var map = new window.kakao.maps.Map(container, options);
});
위의 useEffect 안쪽에 있던 script.src에 맨 뒤에 autoload=false를 추가하는데,
이미 앱키가 쿼리로 들어가 있기 때문에 추가하려면
"?autoload=false" 대신 "&autoload=false"로 넣어줘야 한다.
3. container를 useRef로
- 전체소스
import React, { useRef, useEffect } from "react";
import "./App.css";
declare global {
interface Window {
kakao: any;
}
}
function App() {
const mapRef = useRef<HTMLDivElement>(null);
useEffect(() => {
const script = document.createElement("script");
script.src =
"//dapi.kakao.com/v2/maps/sdk.js?appkey=bfd444b07ffd852d15ab9bfa726c6b6a&autoload=false";
document.head.appendChild(script);
script.onload = () => {
if (mapRef.current) {
window.kakao.maps.load(() => {
var options = {
//지도를 생성할 때 필요한 기본 옵션
center: new window.kakao.maps.LatLng(33.450701, 126.570667), //지도의 중심좌표.
level: 3, //지도의 레벨(확대, 축소 정도)
};
var map = new window.kakao.maps.Map(mapRef.current, options);
});
}
};
return () => script.remove();
}, []);
return (
<div className="App">
<div ref={mapRef} style={{ width: 300, height: 300 }}></div>
</div>
);
}
export default App;
갖고 있던 모든 프로젝트의 카카오지도를 혼자서 담당했기 때문에,
두달 가까이 매일매일 카카오지도 API만 만졌는데,
React로 만나니 또 새로운 코드가 되었다.
'code > React.js' 카테고리의 다른 글
[React] React에서 반응형 웹 대응하기 (0) | 2025.02.04 |
---|---|
[REACT] 외부 API 받아오기(with typescript) -declare (0) | 2022.06.01 |
[REACT] useImperativeHandle, forwardRef hook (0) | 2022.05.17 |
[REACT] react 설치 방법 변경 (0) | 2022.05.13 |
[REACT] 유용한 dependencies (0) | 2022.05.07 |
Comments