๐๏ธ Git
๐ ์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ
โ๏ธ t-story
๐ฃ Major - information electrical electronics
๐น๏ธ MBTI - ESTJ
23.01.04 ~ 23.01.17
1. ํ๋ก์ ํธ ์๊ฐ
์ผ์ ์์์ ๋ด๊ฐ ๋จผ์ ์ฌ์ฉํ๊ณ ์ถ์ ์๋น์ค๋ฅผ ์๊ฐํ์์ต๋๋ค. ํ์์ ์นดํ๋ฅผ ์ฆ๊ฒจ๊ฐ๋ ํ๋์ธ์ผ๋ก์ ๋งค๋ฒ ๊ฐ ์ง์ญ์ ์๋ ์นดํ๋ฅผ ์นด์นด์ค๋งต, instagram, ๋ค์ด๋ฒ ๋ฑ์์ ๊ฐ๊ณ ์ถ์ ์นดํ๋ฅผ ์ฐพ๋ ์ผ์ด ๋ฒ๊ฑฐ๋ก์ ์ผ๋ฉฐ, ๋ฐ์ดํฐ๋ฅผ ์์งํด ๋๊ณ ์ฌ๋๋ค์ด ์ง์ญ, ๊ตฌ,์, ๊ฐ๊ณ ์ถ์ ๋ถ์๊ธฐ๋ฅผ ํํฐ๋ง ํด์ ๋ณด์ฌ์ฃผ๋ฉด ์ข์ ๊ฒ ๊ฐ์์ ์ ์ํ๊ฒ ๋์์ต๋๋ค.
2. ๋ฐฐ์ด ์
const [selectArea, setArea] = useState("");
const [selectTh, settheme] = useState("");
const [selectsigu, setsigu] = useState("");
Filter and Map
selet ๋ฐ์ค ์ ํ ์ ํด๋น ์ง์ญ, ํ ๋ง์ ํด๋นํ๋ ๋ชฉ๋ก์ ๋ณด์ฌ์ฃผ๊ธฐ ์ํด filter๋ก ๊ฑธ๋ฌ๋ด์ด ํด๋นํ๋ ๋ฐ์ดํฐ๋ง returnํ์ฌ Map์ผ๋ก ๋ฟ๋ ค์ฃผ์์ต๋๋ค.
const items = CafeInfo.filter((data) => {
if (selectArea == "" && selectTh == "" && selectsigu == "") return data;
else if (
data.area.includes(selectArea) &&
data.theme.includes(selectTh) &&
data.gu_si.includes(selectsigu)
) {
return data;
}
}).map((data, index) => {
return (
<div className="card" key={index} onClick={() => movePage(data.link)}>
/*ํํฐ๋ง์ ๋ง๋ ์ง์ญ, ํ
๋ง, ๊ตฌ/์์ ํด๋นํ๋ ์นดํ๋ง ์ถ๋ ฅ*/
</div>
);
});
์๋จ ๋ฐ position ์์ฑ
์ฌ์ฉ์์ ํธ์๋ฅผ ์ํด ๋ค์ ์๋ก ์ฌ๋ผ๊ฐ์ง ์๊ณ ์๋๋ก ์คํฌ๋กค ๋ ์ํ์์๋ ํํฐ๋ฅผ ์์ ํ ์ ์๋๋ก positon์ ์ค์ ํ์์ต๋๋ค.
position: fixed;
z-index: 1;
top: 70;
3. ์์ฌ์ด ์
<์ด์ ๋ฒ์ (2021)>
(take a rest)
2023.01.19 ~
1. ํ๋ก์ ํธ ์๊ฐ
API์ฌ์ฉ
2. ๋ฐฐ์ด ์
์คํ API, ๋น๋๊ธฐ
async function getData(i) {
const response = await fetch(url);
//jsonํํ๋ก ํ์ํ ์ ๋ณด๋ฅผ data์ ๋ฃ์ด์ค
const data = await response.json();
const info = data.list.map((val) => [
val.unitName,
val.weatherContents,
val.addr,
val.tempValue,
]);
const latlng = data.list.map((val) => [val.xValue, val.yValue]);
makeJson(latlng);
i = show(info, i);
}