브라우저에서 서버로 해당 url로 요청을 보내어 해당 페이지를 받아왔습니다.
하나의 큰 앱을 받아오는 방식입니다. 서버에서 전체 묶음을 받아온 후에 브라우저에서 url에 따라서 어떤것을 보여 줄지를 결정합니다.
즉, 서버에서 각각의 페이지를 요청하는 것과 다르게 한 번에 덩어리를 받아오고, 내부에서(클라이언트 브라우저) url에 맞춰서 보여줄 페이지를 보여주는 방식입니다. 이런 방식으로 동작하는 어플리케이션을 Single Page Application 이라고 부릅니다.
이러한 라우팅의 역할은 React의 범주를 넘어섭니다.
리액트는 우리가 컴포넌트를 작성하고, 컴포넌틀르 렌더하는 일에 집중한다면,
지금 다루고 있는 라우팅은 url과 그 url에 따라서 어떤 컴포넌트를 보여줄 것인지에 대한 로직이 필요한데 이러한 일을 해주는 것이 React Router입니다.
보통 React Router DOM 이라고 부릅니다.
npm i react-router-dom
npx create-react-app react-router-example
npm i react-router-dom
App.js
function App() {
return (
<BrowserRouter>
<Route path="/" component={Home} />
<Route path="/profile" component={Profile} />
<Route path="about" component={About} />
</BrowserRouter>
);
}
/profile
에 /
도 들어있기 때문에, /profile
url에서 Home 페이지와 Profile 페이지 둘 다 보이고 있습니다. 하지만 이것은 우리가 원하는 결과가 아닙니다.
exact
키워드를 사용하면 포함관계를 따지지 않고, 설정된 url과 정확히 일치할 때만 해당 컴포넌트를 보여줍니다.