function App() {
return (
<BrowserRouter>
<Routes>
<Route path="/" element={<Home />}></Route>
<Route path="/detail/:id" element={<Detail />}></Route>
</Routes>
</BrowserRouter>
);
}
//API가 불려오기전 로딩 노출 유무
const [lodaing, setLoading] = useState(true);
//API담아줄 빈배열 생성
const [dataList, setDataList] = useState([]);
//async/await를 이용한 데이터 패치
const getData = async () => {
const json = await (
await fetch(
`https://`
)
).json();
//가공된 데이터 담아주기
setDataList(json.data.results);
//데이터가 다 불려오면 loding false
setLoading(false);
};
useEffect(() => {
//데이터 불러오기는 처음 화면 렌더링 될때만 실행
getData();
}, []);
return (
<>
{loading ? (
<h2>Loding...</h2>
) : (
<div>
{dataList.map((item) => (
<DetailView
key={item.id}
text={item.name}
src={`${item.thumbnail.path}.jpg`}
/>
))}
</div>
)}
</>
);
useParams를 써보면서 URL에 있는 파라미터에 대한 접근이 쉽다는걸 배웠다.
react-router-dom을 사용하면서 버전에 따른 코드가 다르다는걸 알게 되었다.
v6에선 swich대신 Routes를 사용하고, Route안에 component말고 element를 사용한다는것을 배웠다.
< Route path="" element={}>
코드리뷰를 하면서 다른분들의 코드를 보며 배울점을 많이 느꼈다.
const router = createBrowserRouter([
{
path: '/',
element: <Home />,
errorElement: <Error />,
},
{
path: '/character/:id',
element: <Details />,
errorElement: <Error />,
},
]);
function App() {
return <RouterProvider router={router} />;
}
const [data, setData] = useState({})
return(
<div>data.name</div>
)