코드만 보고 application을 떠올릴 수 있게끔 하는 명시적인 React
선언형 (declarative)
React는 한 페이지를 보여주기 위해 HTML/CSS/JS로 나눠서 적기보다는
하나의 파일에 명시적으로 작성할 수 있게 JSX를 활용한 선언형 프로그래밍을 지향
컴포넌트 기반 (component-based)
React는 하나의 기능 구현을 위해 여러 종류의 코드를 묶어둔 컴포넌트를 기반으로 개발한다.
컴포넌트로 분리하면 서로 독립적이고(컴포넌트 간 의존성이 줄어듦) 재사용 가능하기 때문에, 각 기능 자체에 집중하여 개발 가능
범용성 (learn once, write anywhere)
React는 javascript 프로젝트 어디에든 유연하게 적용
Facebook에서 관리되어 안정적이고 (버그 적음), 가장 유명하며, 리엑트 네이티브로 모바일 개발도 가능
리액트 SPA(Single Page Application)를 쉽고 빠르게 개발할 수 있도록 만들어진 툴 체인
Wireframe은 디자인 들어가기 전 단계. 선(wire)을 이용해 윤곽선(frame)을 잡음.
Mockup은 그 다음 단계 (데모, 시연, 평가를 위한 최소한의 기능만)
React Router는 "라이브러리"이다.
Twittler 와 같은 SPA 를 만들 때, 메인 트윗 모음 페이지, 알림 페이지, 마이 트윗 페이지 등의 화면이 있으면 화면들마다 "주소"가 달라진다.
다른 주소에 따라 다른 뷰를 보여주는 과정을 "경로에 따라 변경한다."라는 의미로 라우팅(Routing)
But ! React 자체에는 이 기능 X. 개발자가 직접 주소마다 다른 뷰를 보여줘야 함
So ! React SPA에서는 라우팅을 위해 React Router 라이브러리 사용
React Router의 주요 component:
이 컴포넌트들을 사용하기 위해서 React Router 라이브러리에서 따로 불러오는 명령어:
import { BrowserRouter, Switch, Route, Link } from "react-router-dom";
▶️ 각 파일들 내에 다른 곳에 있는 파일을 변수로 불러와서 그 파일 속 내용을 갖다 쓰고 싶을 때,
맨 위에 : ' import 뭐 from 어디 ' 명시해줘야 한다 !
🔻🔻🔻
<BrowserRouter>
▶️ BrowserRouter는 웹 애플리케이션에서 HTML5의 History API를 사용해 페이지를 새로고침 하지 않고도 주소를 변경할 수 있는 역할. BrowserRouter가 상위에 작성되어 있어야 Route 컴포넌트를 사용할 수 있다.
<Switch>
▶️ 여러 Route를 감싸서 그 중 경로가 일치하는 단 하나의 라우터만 렌더링을 시켜주는 역할. Switch를 사용하지 않으면 매칭되는 모든 요소를 렌더링한다.
<Route path = "주소">
▶️ Route 컴포넌트는 path 속성을 지정하여 해당 path에 어떤 컴포넌트를 보여줄지 정한다. Link 컴포넌트가 정해주는 URL 경로와 일치하는 경우에만 작동
<Link>
▶️ 경로를 연결해주는 역할을 하는 컴포넌트. 페이지 전환을 통해 페이지를 새로 불러오지 않고 애플리케이션을 그대로 유지하여 HTML5 History API 를 이용해 페이지의 주소만 변경해줌.