'javascript/react'에 해당되는 글 5건

  1. 2022.03.17 react naver map 연동
  2. 2022.03.17 react 에서 fontawesome 사용하기
  3. 2022.03.15 react yarn 빌드하기
  4. 2022.03.08 react 에서 bootstrap 사용하기
  5. 2021.06.21 window react 개발 환경 설정

react에서 naver지도를 연결 해줘야 하는 상황이 있어 찾아 보니 

 

https://github.com/zeakd/react-naver-maps

 

GitHub - zeakd/react-naver-maps: Controlled React Component for Naver Maps to handle zoom, center, etc.

Controlled React Component for Naver Maps to handle zoom, center, etc. - GitHub - zeakd/react-naver-maps: Controlled React Component for Naver Maps to handle zoom, center, etc.

github.com

https://zeakd.github.io/react-naver-maps/

 

React Naver Maps Style Guide

 

zeakd.github.io

이런 감사한 분이 있습니다. 가이드도 친절하고 react에 맞게 작업하기 편하게 만들어 주셨습니다.

간단한 사용방법 정리 했습니다.

 

모듈 설치를 해야 하니 해당 프로젝트 폴더에서

yarn add react-naver-maps 명령어를 실행 시킵니다.

그리고 사용할 페이지에서 2개의 패키지를 import합니다.

import { NaverMap, Marker } from 'react-naver-maps';
import { RenderAfterNavermapsLoaded } from 'react-naver-maps';

 

NaverMap -> 지도호출

Marker  -> 마커표시

RenderAfterNavermapsLoaded  -> 지도 비동기 호출을 위해

지도를 표현만 한다면 위의 3개만 있으면 됩니다. 자세한 내용은 가이드 사이트 보시면 잘 설명 되어 있습니다.

import { NaverMap, Marker } from 'react-naver-maps';
import { RenderAfterNavermapsLoaded } from 'react-naver-maps'; 

const NaverMapView =({mapLat, mapLng})=> {
    return (
        <>
            <RenderAfterNavermapsLoaded	   // render 후 지도 호출(비동기 랜더링)
                ncpClientId={'Client ID'} // 지도서비스 Client ID
                error={<p>error</p>}
                loading={<p>Maps Loading</p>}
                submodules={["geocoder"]} //추가로 사용할 서브모듈이 있는경우
            >
                <NaverMap
                    id="react-naver-maps"
                    style={{ width: '100%', height: '100vh' }}
                    center={{ lat: mapLat, lng: mapLng }}
                >
                    <Marker position={{ lat: mapLat, lng: mapLng }}/>
                </NaverMap>
            </RenderAfterNavermapsLoaded>
        </>
    )
}

export default NaverMapView;

해당 내용을 NaverMapView.js 로 생성하고 노출을 원하는 페이지에서 해당 페이지를 추가 해주시면 됩니다.

import NaverMapView from "../inc/NaverMapView";

const Map =()=>{ 
	let mapLat = "37.3595704";
	let mapLng = "127.105399";
    return(
        <div className="row mt-1" style={{height: "300px;"}}>
            <NaverApiMap mapLat={mapLat} mapLng={mapLng}></NaverApiMap>				
        </div>       
    );    
}
    
export default Map;

상황에 따라서 지도의 위치 및 마커를 변경 하고 싶은 경우 useState 를 사용해서 lat, lng를 정의 해줘야 합니다.

아래와 같이 선언 해주고

const [{ mapLat, mapLng }, setGeometricData] = useState({
  mapLat: 37.486708581137,
  mapLng: 127.037893303934,
});

해당 값을 상황에 맞게 변경 해주는 겁니다. 가장 사용 하지 않을거 같은 2가지 상황을 기준으로 작업 해본다면

(아래 2가지 경우 모두 https 에서만 허용되니 https에서 테스트 해주셔야 합니다.)

1. 내 위치 기준으로 지도,마커 변경

function getLocation() {
	if(navigator.geolocation) {
		navigator.geolocation.getCurrentPosition(
			function (position){
				setGeometricData({mapLat:position.coords.latitude, mapLng:position.coords.longitude});
			}, 
			function (error){
				console.error(error);
			}, 
			{
				enableHighAccuracy: false,
				maximumAge: 0,
				timeout: Infinity
		});
	}else{
		alert('gps관련 정보가 없습니다.');
	}
}

함수를 이용 할 수 있습니다.

2. 주소 기준으로 지도,마커 이동

이 경우 geocoder 서브모듈을 사용해야 하는데 위의 네이버지도 호출 시 submodules={["geocoder"]} 라는 부분이 추가 되어 있는걸 확인 할 수 있습니다. 원하는 서브모듈이 있는경우 위와 같이 추가 해주시면 됩니다.(여러개의 경우 배열로 넣어 주시면 됩니다. 깃허브 이슈 내용에 보면 아래와 같이 기술 되어 있습니다.)

const mySubModule = ['panorama','geocoder'];

<RenderAfterNavermapsLoaded>
    ncpClientId={ClientID}
    submodules={mySubModules}

</RenderAfterNavermapsLoaded>

주소를 기준으로 좌표를 가지고 오는 함수를 아래와 같이 추가 해주고

const searchAddressToCoordinate =(address)=> {
	const navermaps = window.naver.maps;

	navermaps.Service.geocode(
		{
			query: address,
		},
		function (status, response) {
			if (status === navermaps.Service.Status.ERROR) {
				if (!address) {
					return alert('Geocode Error, Please check address');
				}
				return alert('Geocode Error, address:' + address);
			}

			if (response.v2.meta.totalCount === 0) {
				return alert('No result.');
			}

			let item = response.v2.addresses[0];
			console.log(item.x+" : "+item.y);
			setGeometricData({mapLat:item.x, mapLng:item.y});
		},
	);
}

호출 해주시면 됩니다. 가이드 문서에 이밖에 어떻게 하면 naver map을 react에서 편하게 사용 할 수 있는지

나와 있으니 참고 해보면 좋을거 같습니다.

반응형

'javascript > react' 카테고리의 다른 글

react 에서 fontawesome 사용하기  (0) 2022.03.17
react yarn 빌드하기  (0) 2022.03.15
react 에서 bootstrap 사용하기  (0) 2022.03.08
window react 개발 환경 설정  (0) 2021.06.21
Posted by 질주하는구
,

react 작업시 기존에 사용하던 fontawesome 를 사용하기 위해 작업을 진행 하면서 정리한 내용 입니다.

공식 홈페이지에 워낙에 잘 정리가 되어 있어 적을 필요가 없을거 같긴 한데...

만약 검색을 하다 이 페이지 오신 분이라면 아래 링크를 타고 들어가시면 잘 정리된 내용을 

확인 할 수 있습니다.

https://fontawesome.com/docs/web/use-with/react/

 

Set Up with React

Font Awesome 6 brings loads of new icons and features to the most popular icon set in the world.

fontawesome.com

우선 fontawesome 관련 모듈을 추가 해줍니다. 전 yarn으로 작업 하기 때문에 아래의 add명령을 실행 해줍니다.

add명령은 작업 하려는 프로젝트 폴더에서 진행 해주시면 됩니다.

 

yarn add @fortawesome/fontawesome-svg-core
yarn add @fortawesome/free-solid-svg-icons
yarn add @fortawesome/free-regular-svg-icons
yarn add @fortawesome/react-fontawesome@latest

fontawesome-svg-core 예전에는 <i 태그로 아이콘을 사용했지만 현재는 svg태그로 아이콘을 사용 한다고 합니다.

(웹은 기술 뿐만 아니라 규약, 라이브러리 모든것이 너무 빨리 변해서 따라 가는게 힘이 듭니다. 전자정부 같은 SI만 하다보면 개인 프로젝트 하면서 따라 간다는게 쉬운일이 아니네요)

free-solid-svg-icons, free-regular-svg-icons 아이콘 페키지 입니다. solid와 regular 2개의 패키지를 추가 했습니다.

(거의 solid만 사용하긴 하는데 하는김에 regular도 가끔 사용하니 추가 해줍니다.)

react-fontawesome@latest react와 fontawesome를 연결 해주는 패키지를 추가 해줍니다. 추가시 버전은 latest(최신)

입니다.

 

패키지를 설치 하고 나서는 아래의 내용을 보고 사용하려는 페이지에 아이콘을 추가 해주시면 됩니다.

https://fontawesome.com/docs/web/use-with/react/add-icons

 

Add Icons with React

Font Awesome 6 brings loads of new icons and features to the most popular icon set in the world.

fontawesome.com

전 단건으로 추가해도 상관 없으니

import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
import { faCrosshairs } from '@fortawesome/free-solid-svg-icons'

 

<FontAwesomeIcon icon={faCrosshairs} />

형식으로 추가 했지만 여러곳에서 많은 아이콘을 사용한다면 설명중 Dynamic Icon Importing 방식이 작업이 

편할거 같습니다.

(Dynamic Icon Importing 을 하려고 했는데... babel.config.js, babel-plugin-macros.config.js 관련 설정을 하지 못해 잠시 미뤄둔 상태 입니다. 작업 하는데로 내용 갱신 진행 하겠습니다.)

반응형

'javascript > react' 카테고리의 다른 글

react naver map 연동  (0) 2022.03.17
react yarn 빌드하기  (0) 2022.03.15
react 에서 bootstrap 사용하기  (0) 2022.03.08
window react 개발 환경 설정  (0) 2021.06.21
Posted by 질주하는구
,

작업한 react프로젝트를 배포하기 위해 build를 해야 하는 경우 yarn을 이용해 간단하게 작업 할 수 있습니다.

 

cmd창에서 작업한 폴더로 이동 후

yarn build

명령을 입력 하시면 

와 같은 화면이 출력 되고 해당 폴더 하위에 build폴더가 생성되고 압축파일들이 생기는걸 볼 수 있습니다.

build시 나오는 문구중 package.json 파일에 homepage 설정을 통해서 빌드할 경로를 관리 할 수 있다고 나오는데

자신이 작업하는 react프로젝트 package.json파일에

와 같이 "homepage" : "빌드경로" 를 지정 해주실수도 있습니다.

반응형

'javascript > react' 카테고리의 다른 글

react naver map 연동  (0) 2022.03.17
react 에서 fontawesome 사용하기  (0) 2022.03.17
react 에서 bootstrap 사용하기  (0) 2022.03.08
window react 개발 환경 설정  (0) 2021.06.21
Posted by 질주하는구
,

react에서 bootstrap을 사용하기 위해 우선 bootstrap 패키지를 설치 해줘야 합니다.

-npm을 사용하는 경우 아래와 같이
npm install react-bootstrap bootstrap
-yarn을 사용하는 경우 아래와 같이
yarn add react-bootstrap bootstrap

command창에서 입력 해주시면 자동으로 bootstrap패키지라 추가 됩니다.
그뒤 컴퍼넌트 호출을 위해 app.js파일에 bootstrap관련 내용을 import해줍니다.

import 'bootstrap/dist/css/bootstrap.min.css';
import * as ReactBootstrap from "react-bootstrap";

 

bootstrap.min.css import부분은 index.html에서 CDN방식으로 link태그를 추가 할 수 도 있습니다.

https://react-bootstrap.github.io/

 

React-Bootstrap

The most popular front-end framework, rebuilt for React.

react-bootstrap.github.io

import css를 하게 되면 nodemodule 하위에 설치한 bootstrap 파일이 빌드시 같이 빌드 됩니다.

index.html을 수정한 경우 실행 시 마다 최신 정보를 요청하고 적용 합니다.


import * as ReactBootstrap 이 부분의 경우 컴포넌트를 동적으로 호출 하기 위한 설정으로

<ReactBootstrap.Button>Boot strap</ReactBootstrap.Button> 와 같이 사용 하시면 됩니다.
이 밖에 단건으로 

import { COMPONENT_NAME } from 'react-bootstrap';
이렇게 호출 도 가능 하고 
import React, { Component } from "react";
import { Form, Col, Button } from "react-bootstrap";
그룹으로 묶어서 추가도 가능 합니다.

자세한 내용은 아래의 url에서 확인 가능 합니다.

 

https://www.pluralsight.com/guides/how-to-import-components-from-react-bootstrap

 

How to Import Components from React Bootstrap | Pluralsight

In this guide, you have learned the various methods for importing components, like importing single components, individual components, dynamic components, and multiple components using a single import statement.

www.pluralsight.com

 

반응형

'javascript > react' 카테고리의 다른 글

react naver map 연동  (0) 2022.03.17
react 에서 fontawesome 사용하기  (0) 2022.03.17
react yarn 빌드하기  (0) 2022.03.15
window react 개발 환경 설정  (0) 2021.06.21
Posted by 질주하는구
,

window10 환경에서 react 개발환경을 셋팅하는 방법을 간단하게 작성 합니다.

 

1. node js

2. yarn

3. vscode

3가지를 설치하고 실행하는 상황까지를 정리 합니다.

 

node js 설치를 위해서 https://nodejs.org/ko/download/ 경로의 설치파일을 다운로드 받아서 설치 합니다.

 

설치 후 콘솔 화면에서 node -v 명령어를 실행해서 버전 정보가 나오는지 확인 합니다.

 

yarn설치를 위해서 https://classic.yarnpkg.com/en/docs/install#windows-stable 페이지에 접속 하면 설치 파일을 다운로드 하는건 아니고 npm install --global yarn 명령어를 콘솔창에서 입력해 실행 하면 됩니다.

 

설치 후 콘솔 화면에서 yarn --version 명령어를 실행해서 버전 정보가 나오는지 확인 합니다.

 

vscode 설치를 위해 https://code.visualstudio.com/download 페이지에 접속 윈도우 설치파일을 다운로드 하고 설치 합니다.

 

3개의 기본 설치파일을 설치 한 후 react프로젝트를 생성 후 실행을 해보겠습니다.

사용할 폴더를 생성 해주고 해당 폴더로 이동 후 생성 명령어를 입력 합니다.

EX>

yarn create react-app project1 명령어를 실행 하면 project1폴더가 생성되고 기본 파일들이 생성 됩니다.

생성이 완료 되면 vscode에서 해당 폴더를 'File>Open Folder' 메뉴로 열어 주면 생성된 폴더 및 파일들을 확인 할 수 있습니다.

정상적으로 생성 된건지 확인 하기 위해 프로젝트 폴더로 이동 프로젝트를 실행 시켜 보겠습니다.

cd project1

yarn start

 

http://localhost:3000 접속을 하면 react기본 페이지가 출력 됩니다.

반응형

'javascript > react' 카테고리의 다른 글

react naver map 연동  (0) 2022.03.17
react 에서 fontawesome 사용하기  (0) 2022.03.17
react yarn 빌드하기  (0) 2022.03.15
react 에서 bootstrap 사용하기  (0) 2022.03.08
Posted by 질주하는구
,