react-router-dom

React.js 2023. 2. 25. 20:55

1. 설치는 npm install -save 로  react-router-dom@6 로 하면 6.0.2버전 등이 설치되며 기본사용법은 아래와 같이 <BrowserRouter> 밑에 <Routes>를 두고 그 밑에 여러개의 <Route>를 넣는 방식이다.

 

import {BrowserRouter, Routes, Route> from "react-router-dom"
import SubSystem1 from "./SubSystem1.js" 
import Admin from "./Admin.js"

export default cont HomePage = () => {

	return (
    	<>
        	<BrowserRouter>  //최상단
           		<Routes> //Router 여러개 포함
        			<Route path="/" element={<SubSystem1 />} />   //에전엔 component였는데 6부턴 element로 바뀜
        			<Route path="/admin" element={<Admin />} />
        
        		</Routes>
    		</BrowserRouter>
    	<>
    )

}

 

2. 혹시 첫 페이지에 간단한 링크를 넣고싶다면

<BrowserRouter>와 <Routes>사이에 아래 코드블락 같은걸 넣으면 된다.

Link도 react-route-dom에서 import하는건데,  <a href는 화면을 refresh하면서 가지만 Link는 refresh없이 변경되므로 뛰어나다.

 

 

    <nav>

          <Link to="/"> Home </ Link>

           <Link to="/admin"> admin </Link>   

    </nav>

 

3. <Link> 보다 조금 발전되어 active일 경우 style등을 넣는다던지 className을 넣는다던지 하고싶으면 <NavLink>를 사용하면 된다.  

<NavLink className="myclass" to="/"> Home </NavLink>

 

3.1  className을 좀더 발전시키면 className={({isActive}) => "myClass" + (isActive?"blue":""}

==> 이 경우 styles.scss 를 import를 하고 여기에 아래와 같이 css를 설정할 수 있다.

nav {
	a{
    	padding: 2em;
        font-size: 2em;
        &.blue{background-color: #00f;}
	}
}

3.2 위에서 &는 상위부모 (여기서는 a)를 치환한다고 보면되는데 자세한 설명은 REF참고. 

 

Posted by yongary
,