중첩 라우트로, 자식 Route를 가지는 부모 Route의 path 뒤에 다른 경로가 더 붙는다는 뜻으로 /*(와일드카드)를 붙여줘서 해당 Route 내부에서 또다른 Route가 렌더 될 수 있음을 명시한다.
<Routes>
<Route path="/" element={<Coins />} />
<Route path="/:coinId/*" element={<Coin />}>
<Route path="chart" element={<Chart />} />
<Route path="price" element={<Price />} />
</Route>
</Routes>
:coinId/chart와 :coinId/price의 라우팅을 네스티드 라우츠 방식으로 구현한 것이다.
JS 내에서 스타일을 지정할 수 있는 방법이다.
// 선언
let BlueBtn = styled.button`
background: blue;
color: white;
padding: 20px;
`
//사용
<BlueBtn>팀버튼</BlueBtn>
useEffect는 컴포넌트가 랜더링 될 때마다 특정 작업을 실행할수 있게 만들어주는 Hook이다.
useEffect(() => {
실행할 코드
}, []);
Asynchronous Javascript And XML라는 뜻으로, 서버에 요청 시 새로고침 없이 데이터를 주고 받을수 있게 도와준다.
리액트 프로젝트 내에서 전역적으로 사용할 수 있는 변수를 위해 사용하는 문법으로, 컴포넌트가 지나치게 중첩되어 있어, 프롭스를 전달하는 과정이 복잡해지면 Context API나 Redux같은 상태관리 툴을 이용하여 편리하게 사용할 수 있다.