[React.js] 단숨에 라우팅 이해하기 :: Routing

반주부·2021년 7월 19일
0

React.js

목록 보기
3/7
post-thumbnail

리액트로 여러개의 페이지를 구축할 수 있어요.
주소창에 /admin, /user 등을 입력하면 서로 다른 페이지를 보여주는거죠.
그걸 라우팅이라고 불러요.

우선 간단하게 해시를 이용할께요.
주소창에 /#a를 입력하면 A 컴포넌트를 보여주고 /#b를 입력하면 B 컴포넌트를 보여주면 될 것 같네요.

import { useState } from 'react';

function A() {
    return <h1>A 페이지</h1>;
}

function B() {
    return <h1>B 페이지</h1>;
}

function App() {
    const [hash, setHash] = useState(document.location.hash);

    function onHashChanged() {
        setHash(document.location.hash);
    }
    window.addEventListener('hashchange', onHashChanged, false);

    return <div>{hash === '#a' ? <A /> : <B />}</div>;
}

export default App;

간단하죠.
그런데 해시를 이용하는건 좀 멋지지 않네요.

리액트 라우터(react-router)라는 라이브러리를 이용할께요.

npm install --save react-router-dom

<Router> 아래에 <Route>를 넣기만 하면 돼요.
path는 주소창에 입력하는 경로고, component는 보여줄 컴포넌트에요.

import { BrowserRouter as Router, Route, Link } from 'react-router-dom';

function A() {
    return <Link to="/b">B 페이지로 이동</Link>;
}

function B() {
    return <Link to="/a">A 페이지로 이동</Link>;
}

function App() {
    return (
        <div>
            <Router>
                <Route path="/a" component={A} />
                <Route path="/b" component={B} />
            </Router>
        </div>
    );
}

export default App;

Link는 <a> 같은거에요.
히스토리 관리도 되니 브라우저 뒤로, 앞으로 버튼을 눌러보세요.

리액트 라우터에 대해 더 알고 싶다면 아래 페이지를 방문하세요.
https://reactrouter.com/web/guides/quick-start

profile
반은 직장인, 반은 주부

0개의 댓글

관련 채용 정보