React Router DOM과 MPA구조

2024. 11. 13. 23:54·웹개발/REACT
728x90

React는 SPA(Single Page Application) 구조를 지원합니다. 그런데 일부 웹 애플리케이션은 MPA(Multi-Page Application)구조를 가집니다. 이번 글에서 React Router DOM을 사용하여 SPA구조를 어떻게 구현할지, 그리고 MPA구조와 어떻게 비교할 수 있는지를 다뤄봤습니다.


React Router DOM

React Router DOM은 리액트 애플리케이션에서 패이지 간에 네이게이션을 관리하는 라이브러리라고 생각하시면 됩니다. 이를 사용해서 클라이언트(사용자)쪽에서 페이지를 새로 고침하지 않아도 다른 페이지로 전환할 수 있습니다.

React Router DOM은 SPA구조에 적합하며 페이지 이동시에도 브라우저가 새로고침되지 않고, 필요한 컴퓨넌트만 렌더링하여 성능을 최적화 해줍니다.

 

사용방법은 다음과 같습니다.

1. React Router DOM 설치

npm install react-router-dom

 

2. 기본 설정

React Router DOM을 사용해서 페이지 간의 이동을 제어하려면 BrowerRouter, Route, Link 컴포넌트를 사용합니다.

import React from 'react';
import { BrowserRouter, Route, Link, Switch } from 'react-router-dom';

const Home = () => <h2>Home Page</h2>;
const About = () => <h2>About Page</h2>;
const Contact = () => <h2>Contact Page</h2>;

const App = () => (
  <Router>
    <div>
      <nav>
        <ul>
          <li>
            <Link to="/">Home</Link>
          </li>
          <li>
            <Link to="/about">About</Link>
          </li>
          <li>
            <Link to="/contact">Contact</Link>
          </li>
        </ul>
      </nav>

      <Switch>
        <Route path="/" exact component={Home} />
        <Route path="/about" component={About} />
        <Route path="/contact" component={Contact} />
      </Switch>
    </div>
  </Router>
);

export default App;

여기서는 BrowerRouter(Router)로 전체 애플리케이션을 감싸고, Link로 페이지 간 네비게이션을 설정합니다. 그리고 Route는 각 url 경로에 해당하는 컴포넌트를 렌더링합니다.


MPA(Multi-Page Application)구조

반면 MPA구조는 각 페이지가 독립된 HTML 문서로 관리되는 방식입니다. 사용자가 다른 페이지로 이동할 때마다 서버에서 새로운 HTML파일을 받아와서 새로 렌더링합니다.
MPA는 대규모 웹 프로젝트에서 SEO나 각 페이지의 독립성 등을 고려할 때 유리합니다.

 

  • SPA는 페이지 간 전환 시에 전체 페이지를 새로고침하지 않으며, React Router DOM을 사용하여 동적인 라우팅을 쉽게 구현할 수 있습니다.
  • MPA는 각 페이지가 독립된 HTML문서로 관리되고, 각 페이지에서 React 애플리케이션을 독립적으로 실행할 수 있습니다.
728x90

'웹개발 > REACT' 카테고리의 다른 글

vite로 react 설치하기  (0) 2024.11.12
React useState  (0) 2024.10.31
vite로 react설치 명령어  (0) 2024.08.02
리액트 상태 관리의 필수 도구: Redux로 상태 관리 쉽게 배우기  (0) 2024.07.31
리액트 컴포넌트와 JSX 문법: Virtual DOM의 기본 이해  (0) 2024.07.31
'웹개발/REACT' 카테고리의 다른 글
  • vite로 react 설치하기
  • React useState
  • vite로 react설치 명령어
  • 리액트 상태 관리의 필수 도구: Redux로 상태 관리 쉽게 배우기
튼튼발자
튼튼발자
프론트엔드 개발자입니다. 헬스를 가끔해서인지 몸이 튼튼한거 같습니다. 그래서 튼튼한 개발자 => 튼튼발자입니다. 프론트엔드 및 관련 개발 내용 블로그 글로 정리해서 올려둡니다.
    250x250
  • 튼튼발자
    튼튼발자
    튼튼발자
  • 전체
    오늘
    어제
    • 분류 전체보기 (192)
      • 튼튼발자의 끄적끄적 (10)
      • 웹개발 (94)
        • HTML (5)
        • CSS (2)
        • JavaScript (40)
        • TypeScript (5)
        • REACT (22)
        • Next.js (13)
        • GIt (7)
      • 기타 (3)
        • 일상 (3)
      • 프로젝트 (27)
        • Componique: UI 컴포넌트 라이브러리 (18)
        • GitHub Profile Viewer (8)
        • 잇핏 (1)
      • 프론트엔드 개발자로 취업준비 (1)
        • 기술 면접 (7)
        • 코딩 테스트 준비하기 (0)
        • 자기소개서&지원서&이력서 (0)
      • 컴퓨터과학 (12)
        • 운영체제 (6)
        • 알고리즘 (6)
      • 전공 공부 (37)
        • AI(인공지능) (2)
        • 컴퓨터네트워크 (19)
        • 네트워크프로그래밍 (3)
        • SW소프트웨어응용설계 (7)
        • 클라우드컴퓨팅 (3)
        • 웹서비스프로그래밍 (3)
      • PT (0)
      • 취준일기 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    JS
    NextJs
    프로그래밍
    리액트
    github
    TCP
    상태관리
    JavaScript
    ui컴포넌트
    프론트엔드개발
    자바스크립트
    데이터전송
    트랜스포트계층
    네트워크
    react
    componique
    코딩
    프론트엔드
    웹개발
    tailwind
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
튼튼발자
React Router DOM과 MPA구조
상단으로

티스토리툴바