React:: 라우팅 처리하기

suragryen·2024년 5월 11일

React::Counter App

목록 보기
4/5

1. 다운로드

react-router-dom
  • 터미널에 명령어를 입력해서 다운로드 해 준다.

2. index.js

import React from 'react';
import ReactDOM from 'react-dom/client';
import { BrowserRouter } from 'react-router-dom'; //웹브라우저 라우팅
import './index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
  <React.StrictMode>
    <BrowserRouter/>
    <App />
  </React.StrictMode>
);

// If you want to start measuring performance in your app, pass a function
// to log results (for example: reportWebVitals(console.log))
// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
reportWebVitals();
  • BrowserRouter import 후 태그 추가

☠️Error

(error) Cannot destructure property 'basename' of 'react~~.useContext(...)' as it is null
import React from 'react';
import ReactDOM from 'react-dom/client';
import { BrowserRouter } from 'react-router-dom'; //웹브라우저 라우팅
import './index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
  <React.StrictMode>
    <BrowserRouter>
    <App />
    </BrowserRouter>
  </React.StrictMode>
);

// If you want to start measuring performance in your app, pass a function
// to log results (for example: reportWebVitals(console.log))
// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
reportWebVitals();
  <React.StrictMode>
    <BrowserRouter/>
    <App />
  </React.StrictMode>
  • App 태그를 BrowserRouter 코드로 감싸주니 해결

import React from "react";
import { Routes, Route, Link} from "react-router-dom";
import Home from "./pages/Home";
import About from "./pages/About";

function App() {
  return (
    <div className="App">
      <nav>
        <Link to={"/"}>Home</Link> | 
        <Link to={"/about"}>About</Link>
      </nav>
      <Routes>
        <Route path="/" element={<Home />}></Route>
        <Route path="/about" element={<About />}></Route>
      </Routes>
    </div>
  );
}

export default App;
  • Link와 상응하는 Route 코드를 작성해주면 라우터가 생성된다.
  • 어떤 컴포넌트를 매핑해서 보여주게 될지 라우터에서 처리 함
profile
블로그 이사중 ☃︎

0개의 댓글