React SPA

dice0314·2023년 5월 19일
0

MPA(Multi-Page Application)

  • 여러 개의 페이지로 구성된 애플리케이션
  • 전통적인 웹 애플리케이션 개발 방식
  • 각 페이지는 서버로부터 HTML을 받아와 페이지를 새로고침하여 렌더링한다.
  • 페이지 전환 시 서버로부터 새로운 페이지를 받아와서 로딩이 발생할 수 있다.
  • 서버로부터 받은 HTML에는 해당 페이지에 필요한 스타일시트, 스크립트 등이 포함된다.

SPA(Single-Page Application)

  • 단일 페이지로 구성된 애플리케이션
  • 초기에 필요한 리소스(HTML, CSS, JavaScript)를 한 번에 로드하고, 이후에는 필요한 부분만 업데이트하여 렌더링한다.
  • 페이지 전환 시 서버로부터 새로운 페이지를 받아오지 않고, 클라이언트 측에서 라우팅을 처리하여 해당하는 컴포넌트를 동적으로 로드한다.

SPA를 개발하는 이유

  • 부드러운 사용자 경험
  • 빠른 반응성
  • 적은 서버 요청량

React Router

  • 주소에 따라 다른 뷰를 보여주는 과정 라우팅(Routing)이라고 한다.
  • React SPA에서 라우팅을 하기 위해 React Router 라이브러리를 많이 사용한다.

3가지 주요 컴포넌트

  • 해당 컴포넌트들을 사용하기 위해서는 react-router-dom을 다운받고 import 시켜야 한다.
npm install react-router-dom@^6.3.0
import { BrowserRouter, Routes, Route, Link } from "react-router-dom";

1. BrowserRouter

  • 클라이언트 측 라우팅을 구현하는 데 사용
  • history API를 사용하여 브라우저의 URL을 관리하고, 해당 URL에 따라 적절한 컴포넌트를 렌더링 한다.
  • 애플리케이션의 최상위에 위치해야 한다.
<BrowserRouter></BrowserRouter>

2. Routes, Route(경로 매칭)

  • BrowserRouter 내에 위치해야 한다.
  • Routes 컴포넌트는 선택이며 Route의 구성을 명시적으로 보여주기 위해 적용한다.
  • Route는 경로와 해당 경로에 매칭될 컴포넌트를 설정하기 위해 사용한다.
  • Route는 경로(path)와 렌더링할 컴포넌트(element)를 받아 현재 URL이 일치할 경우 해당 컴포넌트를 렌더링 한다.
<Routes>
	<Route path="/" element={<Home />} />
</Routes>

3. Link(경로 변경)

  • 클라이언트 측에서 내비게이션을 처리하기 위해 사용한다.
  • 클릭 가능한 링크를 생성하고, 클릭 하면 브라우저의 URL을 변경하고 라우팅을 처리한다.
  • 페이지 전환 시 새로고침 없이 컴포넌트를 렌더링할 수 있다.
<Link to="/"></Link>
profile
정리노트

0개의 댓글