SPA (Single-page application)
=> 새로고침되지 않고 컴포넌트가 교체되는 듯하게 페이지 이동이 가능
CSR (Client Side Rendering)
=> 사용자가 필요할 때 데이터를 가져오기때문에 매번 서버에 요청하지 않아도 됨
React에서 CSR기반의 페이지 라우팅을 할 수 있게 해주는 라이브러리
function App() {
return (
<BrowserRouter>
<div className="App">
<h2>App.js</h2>
<Routes>
<Route path='/' element={<Home />}/>
<Route path='/new' element={<New />}/>
<Route path='/edit' element={<Edit />}/>
<Route path='/diary' element={<Diary />}/>
</Routes>
</div>
</BrowserRouter>
);
}
path='/'
: /는 홈(index)을 나타냄
element={}
: 이동할 import해준 페이지를 컴포넌트형식으로 넣어줌
<h2>
부분은 페이지가 바뀌어도 변하지않는 고정 엘리먼트
<Routes>
안에 부분만 변경되면서 페이지가 바뀌는것처럼 보여짐
페이지 이동시에는 <Link to={'이동할곳'}>링크이름</Link>
를 클릭해서 이동
<Link to={'/'}>HOME</Link>
<Link to={'/diary'}>DIARY</Link>
<Link to={'/new'}>NEW</Link>
<Link to={'/edit'}>EDIT</Link>
사용자정의 훅(커스텀 훅)
경로에 변수를 사용한다.
상세페이지처럼 페이지 별 id값을 받아올 수 있다.
<Route path='/diary/:id' element={<Diary />}/>
=> 반드시 콜론(:id)을 사용하여 적어야 한다
id를 사용하는 페이지에서 useParams를 사용해준다
=> url에 임의의 id값을 입력해주면 console로 id값을 받아오는것을 볼 수 있다
웹 페이지에 데이터를 전달하는 가장 간단한 방법
? 물음표를 사용한다
네임과 벨류를 엮어서 전송해준다
edit?id=10&mode=dark
: Query String
const [searchParams,setSearchParams] = useSearchParams();
const id = searchParams.get('id');
const mode = searchParams.get('mode');
console.log(id) //10
console.log(mode) //dark
const navigate = useNavigate();
<button onClick={() => navigate('/home')}HOME으로 가기<button>
<button onClick={() => navigate(-1)}뒤로 가기<button>
공부하며 정리&기록하는 ._. 씅로그