— react.js, react-router — 1 min read
React는 컴포넌트 기반의 SPA(Single Page Application)를 만드는데 최적화 되어있다. /signin
, /signup
등 React로 여러 페이지를 구현하기 위해서 React Router를 사용합니다.
1yarn add react-router-dom2# or, if you're not using yarn3npm install react-router-dom
Import 예제
1import React from "react";2import { BrowserRouter as Router, Route, Link } from "react-router-dom";
a
태그 이다.to
prop을 이용하여 해당 url로 link시켜준다.1// /search에서도 홈이 나온다.2<Link to="/">홈</Link>3<Link to="/search">검색</Link>4// / 일때만 홈이 나오고 /search에서는 홈이 나오지 않음.5<Link exact to="/">홈</Link>6<Link to="/search">검색</Link>
각각 다른 링크에서 다른 스타일을 사용할 때 사용
path
props로 받은 path로 접속하면 component
props의 컴포넌트로 연결시켜준다. 혹은 render
props대로 render해준다.exact
키워드 사용 가능.1<Route exact path="/" component={Home} />2<Route path="/render" render={() => (3 <h3>Render Test</h3>4)} />
render
속성을 사용하면 된다.
예제
1<Route render={(props) => <MyComponent myProps="hello" />} />
아래 코드는 logged가 false
이면 /login/
으로 redirect 시켜준다.
1const logged = true;23const MyPage = () => {4 return <div>{!logged && <Redirect to="/login" />}내 페이지</div>;5};
1<Switch>2 <Route exact path="/" component={Home} />3 <Route path="/about/:username" component={About} />4 <Route component={NotFound} />5</Switch>
URLSearchParams
라는 자바스크립트 고유 함수 사용해서 아래와 같이 브라우저에서 호출
http://localhost:3000/search?keyword=나
1<div>{new URLSearchParams(location.search).get("keyword")} Search</div>
나
출력