$ nvm use 16.16.0
$ npx create-react-app .
$ npm install react-router-dom --save
// Router.js
import React from "react" ;
import { BrowserRouter , Routes , Route } from "react-router-dom" ;
import Nav from "./components/Nav/Nav" ;
import Footer from "./components/Footer/Footer" ;
import Login from "./pages/Login/Login" ;
import Signup from "./pages/Signup/Signup" ;
import Main from "./pages/Main/Main" ;
function Router ( ) {
return (
< BrowserRouter >
< Nav / >
< Routes >
< Route path = "/" element = { < Login / > } / >
< Route path = "/signup" element = { < Signup / > } / >
< Route path = "/main" element = { < Main / > } / >
< / Routes >
< Footer / >
< / BrowserRouter >
) ;
}
export default Router ;
// index.js
ReactDOM . render ( < Router / > , document . getElementById ( 'root' ) ) ;
# Link 컴포넌트 사용
< Link to = "/sign-up" > 회원가입 < / Link>
# useNavigate 사용
const navigate = useNavigate ( ) ;
navigate ( "/main" ) ;
Sass/Styled Components 설정 및 적용
$ npm install sass --save
$ npm install styled-components --save
$ npm install styled-reset --save
// Router.js
import React from 'react' ;
import { BrowserRouter , Routes , Route } from 'react-router-dom' ;
import { Reset } from 'styled-reset' ;
import Main from './Pages/Main/Main' ;
import Header from './Components/Header/Header' ;
import Footer from './Components/Footer/Footer' ;
function Router ( ) {
return (
< BrowserRouter >
< Reset / >
< Header / >
< Routes >
< Route path = "/" element = { < Main / > } / >
< / Routes >
< Footer / >
< / BrowserRouter >
) ;
}
export default Router ;
// GlobalStyle.js
import { createGlobalStyle } from 'styled-components' ;
import reset from 'styled-reset' ;
const GlobalStyles = createGlobalStyle `
${ reset }
body {
box-sizing: border-box;
}
` ;
export default GlobalStyles ;
// Router.js
import { BrowserRouter , Route , Routes } from 'react-router-dom' ;
import Main from './Pages/Main/Main' ;
import GlobalStyles from './Styles/GlobalStyles' ;
function Router ( ) {
return (
< BrowserRouter >
< GlobalStyles / >
< Routes >
< Route path = "/" element = { < Main / > } / >
< Route path = "/main" element = { < Main / > } / >
< / Routes >
< / BrowserRouter >
) ;
}
export default Router ;
CRA에서 발생할 수 있는 문제
We no longer support global installation of Create React App
npm WARN deprecated tar@2.2.2: This version of tar is no longer supported