https://jsonplaceholder.typicode.com/ ์ ์ฌ์ฉ
- ๋ฌด๋ฃ๋ก API ์๋น์ค๋ฅผ ์ ๊ณตํด์ Test ๋ฅผ ํ ์ ์์ต๋๋ค
- ์ฌ์ฉ์๊ฐ ์ด๋ค API ๋ก ์์์ ๊ฐ์ ธ๋ค ์ธ ์ ์๋์ง ๋ชฉ๋ก
- ์ฌ๊ธฐ์๋
/comments
์ฌ์ฉ - API ๋ฅผ ํธ์ถํ๋ ค๋ฉด ํด๋น API์ ์ฃผ์๋ฅผ ์์์ผ ํ๋๋ฐ ์์ ๋ฆฌ์์ค๋ฅผ ํด๋ฆญํ๊ณ ๋ค์ด๊ฐ URL ์
๋๋ค.
( https://jsonplaceholder.typicode.com/comments )
โ App.js
- ํธ์ถํ๋ ์์ : App.js ์ปดํฌ๋ํธ๊ฐ Mount ํ๋ฉด ํธ์ถ
function App() {
const getData = async () => {
const res = await fetch(
'https://jsonplaceholder.typicode.com/comments'
).then((res) => res.json());
console.log(res); // 500 ๊ฐ์ ๋ฐ์ดํฐ ํ์ธ ๊ฐ๋ฅ
};
// Mount ์์ ์ ์ํ
useEffect(() => {
getData();
}, []);
โ getData ํจ์์์ ๊ฐ์ ธ์จ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉ
function App() {
// API ํธ์ถ ํจ์
const getData = async () => {
const res = await fetch(
'https://jsonplaceholder.typicode.com/comments'
).then((res) => res.json());
console.log(res);
const initData = res.slice(0, 20).map((it) => {
return {
author: it.email,
content: it.body,
emotion: Math.floor(Math.random() * 5) + 1,
create_date: new Date().getTime(),
id: dataId.current++,
};
});
setData(initData);
};
useEffect(() => {
getData();
}, []);
- ๊ฐ์ ธ์์ ์ฌ์ฉํ ๋ฐ์ดํฐ ( 0 ~ 19 ์ธ๋ฑ์ค ๊น์ง ์๋ผ์ต๋๋ค. )
- map ์ ์ด์ฉํด ๋ฐฐ์ด์ ๊ฐ๊ฐ ๋ชจ๋ ์์๋ฅผ ์ํํด์
- map ํจ์์ ์ฝ๋ฐฑํจ์ ์์์ return ํ๋ ๊ฐ๋ค์ ๋ชจ์์ ์๋ก์ด ๋ฐฐ์ด์ ๋ง๋ค์ด์
- initData ์ ๋ฃ์ต๋๋ค.
โ ์ฐธ๊ณ
'๐ Front-End > React.js' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ต์ ํ - useMemo (0) | 2022.10.24 |
---|---|
React developer tools (0) | 2022.10.24 |
useEffect (0) | 2022.10.24 |
React Lifecycle (0) | 2022.10.24 |
๋ฆฌ์คํธ ๋ฐ์ดํฐ ์์ ํ๊ธฐ (0) | 2022.10.24 |