완성본:https://github.com/qjawns0222/hompage.git
npx create-react-app으로 폴더 만들어주세요
그리고 src 내부에 context 폴더 만들어주세요
그리고 그안에 item.js store.js생성
store.js 만들어서
import { createContext } from "react";
const store = createContext();
export default store;

이렇게 만들어주세요 여기는 저장소 공간을 만들어주는 것이라고 생각해주세요
item.js
const item = {
data: [
{
id: 0,
gim: 2,
odeng: 0,
addition: "ㅇㅁㄴㅇㅇㄴㅇㅁㄴㅇㅁㄴㅇㄴㅁㅇ",
summary: "ㅇㅁㄴㅇㅇㄴㅇㅁㄴㅇㅁ....",
date: "14:27",
},
],
id: 0,
};
export default item;

여기는 저장소에 안에 넣을 데이터와 틀을 만들어 준것입니다.
그럼이제 이걸 우리가 만든페이지에서 사용하도록 해보겠습니다. index.js로 이동해볼께요
index.js
import React from "react";
import ReactDOM from "react-dom";
import "./index.css";
import App from "./App";
import reportWebVitals from "./reportWebVitals";
import store from "./context/store";
import item from "./context/item";
ReactDOM.render(
<React.StrictMode>
<store.Provider value={item}>
<App />
</store.Provider>
</React.StrictMode>,
document.getElementById("root")
);
// 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();
여기서 저장공간과 저장내용을 가져와서<store.Provider value={item}>이걸 사용해서 우리가 만든 저장공간을 페이지에서 사용하도록 해주게 됩니다.
이렇게 저장공간을 만들고 적용시키느것까지 끝났습니다. 이번에는 바로 router를 써서 페이지를 나눠보겠습니다.
우선 src안에 pages폴더 만들고 그안에 만들페이지 4개의 파일을 만들어주겠습니다.
그리고 내부에
import React from "react";
export default function Detail() {
return <div>detail</div>;
}
각각 이런식으로 작성해주세요이렇게 4개를 만들고 각각 해당 파일을 부르면 return 값을 보여주겠다는 의미입니다.
App.js로이동
import "./App.css";
import { BrowserRouter, Navigate, Route, Routes } from "react-router-dom";
import Home from "./pages/Home";
import Menu from "./pages/Menu";
import Buy from "./pages/Buy";
import Detail from "./pages/Detail";
function App() {
return (
<BrowserRouter>
<Routes>
<Route path="/" element={<Home />} />
<Route path="/menu" element={<Menu />} />
<Route path="/order" element={<Buy />} />
<Route path="/detail:id" element={<Detail />} />
<Route path="*" element={<Navigate replace to="/" />} />
</Routes>
</BrowserRouter>
);
}
export default App;

/는 뒤에 아무것도 없는것도 포함합니다.
그리고 detail:id는 detail바로다음에 붙는것을 다 id로 인식하고 /나오기전까지 허용하겠다는 의미입니다.
즉 detailsdf는 허용됙 detail/dfsdf는 허용이 되지 않습니다.
element는 어디랑 연결되는데 import부분을 보면 이해할수 있습니다.
그럼 이번은 제대로 동작이 되는지 확인하고 마치겠습니다.

이렇게 제대로 동작이 되네요
'React를 같이 배워보자' 카테고리의 다른 글
React 마지막 간단한 프로젝트 2일차- Home화면 (0) | 2022.03.01 |
---|---|
React 마지막 간단한 프로젝트 1일차- Form을 만들어보자 (0) | 2022.02.28 |
React 마지막 간단한 프로젝트 1일차- 개요 (0) | 2022.02.28 |
React27일차-mobx(async) (0) | 2022.02.22 |
React27일차-mobx(inject,store) (0) | 2022.02.21 |