๐บ๏ธ 4์ฃผ์ฐจ (24.3.6 - 3.12)
๐ชด ํต์ฌ 3์ค ์์ฝ
- ์คํ๋ผ์ธ ๋ชจ๊ฐ์ฝ ๋๋ฌด ์ฌ๋ฐ์๋ค.
- ์์ต, ๊ณผ์ ๋ฏธ๋ฆฌ๋ฏธ๋ฆฌ ์์ํ๊ธฐ
- ๊ณต๋ถํ๋ ์๊ฐ ๋๋ฆฌ๊ธฐ
๐ ์ด๋ฒ ์ฃผ ๋ชฉํ
โ ์ผ๊ณผ ๊ณต๋ถ ๋ฐธ๋ฐ์ค ์ ๋ง์ถ๊ธฐ - ์ด๊ฑฐ ์๊ฐ๋ณด๋ค ์ด๋ ต๋ค!
โ ์ฑ๋ฆฐ์ง ์ฌ์ถํ๊ธฐ
โ ์คํ๋ผ์ธ ๋ชจ๊ฐ์ฝ ์ฐธ์ฌํ๊ธฐ
๐ฅ ์นญ์ฐฌํ๊ณ ์ถ์ ์
- ๊ณ์ ๋ญ๊ฐ๋ฅผ ํ๋ ค๊ณ ํ๋ ์
- ์คํ๋ผ์ธ ๋ชจ๊ฐ์ฝ ๊ฐ ์
๐ ๊ณ ์น๊ฑฐ๋ ๋ฒ๋ ค์ผ ํ ์
- ๊ธฐ๋กํ์ง ์์ ์
- ๋ฏธ๋ฆฌ๋ฏธ๋ฆฌ ํ์ง ์๋ ์
๐ ์ด๋ฒ ์ฃผ ๊ธฐ์ตํ๊ณ ์ถ์ ๋ด์ฉ
1. isLoading๊ณผ isFetching ์ ์ฐจ์ด์
isFetching
isFetching์ ์ด๋ ํ react-query์์ฒญ ๋ด๋ถ์ ๋น๋๊ธฐ ํจ์๊ฐ ์ฒ๋ฆฌ๋์๋์ง ์ฌ๋ถ ์ ๋ฐ๋ผ true/false๋ก ๋๋์ด ์ง๋ค.
=> ์บ์๋ ๋ฐ์ดํฐ๊ฐ ์์ ๋ ์ฌ์ฉ, ์๋ฒ์ ๋ฐ์ดํฐ ์์ฒญ์ ๋ค์ ํ ๋
isLoading
isLoading์ ์บ์๋ ๋ฐ์ดํฐ์กฐ์ฐจ ์์ด, ์ฒ์ ์คํ๋ ์ฟผ๋ฆฌ ์ผ ๋ ๋ก๋ฉ ์ฌ๋ถ์ ๋ฐ๋ผ true/false๋ก ๋๋์ด ์ง๋ค.
์ฆ, ๊ฒฐ๋ก ์ ์ผ๋ก isLoading๊ณผ isFetching์ ๋น์ทํ๊ฒ '๋ก๋ฉ' ์ด๋ผ๋ ๊ฐ๋ ์ ์ฌ์ฉํ์ง๋ง ๊ธฐ์กด์ ์บ์๋ ๋ฐ์ดํฐ๊ฐ ์๋๋ ์ ๋ฐ๋ผ ๋ค๋ฅด๋ค.
=> ์๋ฒ์ ๋ฐ์ดํฐ ์์ฒญ์ '์ฒ์' ํ ๋
2. img ํ๊ทธ ์ฌ์ฉ ์ ๋์ค์ง ์๋ ์ด๋ฏธ์ง ๋ค๋ฅธ ์ด๋ฏธ์ง๋ก ๋์ฒดํ๊ธฐ
๋์ฆ๋ ๊ณผ์ ๋ฅผ ํ๋ ๋์ค,
์ด๋ฐ ์์ผ๋ก ์ด๋ฏธ์ง๊ฐ ๋ถ๋ฌ์์ง์ง ์๋ ๊ฒฝ์ฐ๊ฐ ์์๋ค.
404 ์๋ฌ๋ฅผ ๋ฑ์ผ๋ฉฐ ๋ผ์ ๋ชฐ๋ผ ์ด๋ฏธ์ง๊ฐ ๋์ด์์๋ค.
์ฒ์์ 404 response ๋ฅผ ์ด๋ป๊ฒ ์ฒ๋ฆฌํด์ผ ํ ๊น,, ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ๊ฑธ๋ฌ๋ด์ผํ์ง ๊ณ ๋ฏผ์ ํ๋ค๊ฐ,
๋ญ๊ฐ ๋ณต์กํด๋ณด์ฌ์ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ์ฐพ์๋ณด๊ธฐ๋ก ํ๋ค.
(์ฌ์ค ๊ทธ๋ฅ ์ฝ๊ฒ ํด๊ฒฐํ๊ณ ์ถ์๋ค :-D )
์ด๋ฏธ์ง๊ฐ ์์ผ๋ฉด ์ ๋ ๊ฒ ๋จ๋ ๋์ alt ๋ก ๋์ฒดํ๋ฉด ๋์๋? ๋ผ๊ณ ์๊ฐํ์ง๋ง,
alt ์์ฑ์ text ๋ง ๊ฐ๋ฅํ ์์ฑ์ด๋ค.
๋๋ฌธ์ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ์ฐพ์์ผ ํ๋ค.
mdn ์์ ํ๊ทธ ๊ด๋ จํด์ ์ฝ๋ ์ค, img ํ๊ทธ์ onError ๋ผ๋ ์์ฑ์ด ์๋ค๋ ๊ฑธ ์์๋ค.
์ค ์ด๋ฐ ๊ฒฝ์ฐ์ ์คํํ ์ด๋ฒคํธ ํจ์๋ฅผ ๋ฑ๋กํ ์ ์๋ค๊ตฌ?
import mickeyImage from '../assets/mickey.png' // ๋์ฒดํ ์ด๋ฏธ์ง
// onError ์ ์คํํ ํจ์
const addDefaultImg = (e: SyntheticEvent<HTMLImageElement, Event>) => {
e.currentTarget.src = mickeyImage;
};
...
<img src={`${character.imageUrl}`} onError={addDefaultImg} />
...
์ด๋ ๊ฒ ๋์ฒดํ ์ด๋ฏธ์ง์ ์ฃผ์๋ฅผ onError ์ด๋ฒคํธ ๋ฐ์ ์, src ์ ๋ฃ์ด์ค๋ค๋ ํจ์๋ฅผ ๋ง๋ค์ด์คฌ๋ค.
์๋ ์ด๋ฏธ์ง๊ฐ ๋์ฒด๋ ๋ชจ์ต. ์ด๋ฏธ์ง๋ ์ ๊ณจ๋๋ค. ํฌํฌ
๐ ์ฃผ๊ฐ ํ์์ ์กฐ๋ณ ํ๋
์ฌํ๋ ์ฃผ์ฒด๋ก ํ ์คํ๋ผ์ธ ๋ชจ๊ฐ์ฝ์ ๊ฐ๋ค์๋ค.
๊ฒฐ๋ก ๋ถํฐ ์๊ธฐํ๋ฉด ๋๋ฌด ์ฌ๋ฐ์๋ค. ๊ฑฐ์ ๋ญ 3๊ฐ์์น ์์ ๊ฑด ๋ค ์๊ณ ์จ ๊ฒ ๊ฐ๋ค. ใ ใ ใ ใ
์์ฝ๋ ์คํฐ๋ ๋ฃธ์ ๊ตฌ์กฐ๊ฐ ๊ฐ์์ค ์ฒ๋ผ ๋์ด์๋ ์ ์ ์กฐ๊ธ ์์ฌ์ ์ง๋ง,
์ธ์์ด ๊ฑฐ์ 40๋ช ๊ฐ๊น์ด ์๋ค๊ณ ํ๋ ์ด์ฉ ์ ์์์ ๊ฒ ๊ฐ๋ค.
๊ธฐ์ ๋์ด ์ฝ๊ณผ๋ ๋๋ ์ฃผ์ จ๋๋ฐ,, ์ ์ฅ ๋ ๋๊ธฐ์ ์ด์ผ.. ๋ ๋ ์ญ๋ฐฐํด์ผํด..
์์ฅ๋์ด๋ ๊ฐ์ด ์๊ฒ ๋ผ์ ์ฒ์ฌ๊ฐ์ ์ผํ๋ชฐ ๊ฒฝํ๋ด๋ ๋ค์๋๋ฐ ๋๋ฌด ์ฌ๋ฐ์๋ค.
ํค์บก๋ ๊ตฌ๋งคํด์ฃผ์ จ๋ค ๐ฅน
๋ง๋๊ณ ์ถ์๋ ๋ถ๋ค์ ๋ค ๋ง๋๊ณ , ์ข์ ์๊ฐ์ ๋ณด๋ธ ๊ฒ ๊ฐ์ ๋ง์กฑ์ค๋ฌ์ ๋ค.
์๋ฆฌ๊ฐ ์์ด ์๊ธฐ ๋ชปํ๋ ๋ถ๋ค๋ ์ง ๊ฐ๋ ๊ธธ์ ์ ๊น ์ธ์ฌํ ์ ์์๋๋ฐ ๋๋ฌด ๋ฐ๊ฐ์ ๋ค โบ๏ธ
+
๋ณ๊ฐ๋ก ์์ฅ๋์ด ํ์ ๊ณผ์ ๋ฅผ ๊ตฌ๊ฒฝํ๋ค ๋ณ ์๊ฐ์์ด ๋ฆฌ์กํธ๋ก ๋ง๋ ๊ฒ ๊ฐ์ง ์๋ค๊ณ ๋ง์๋๋ ธ๋๋ฐ,
์๋ ์ ๋ ๊ฒ ๊ฐํ๊ฒ ์๊ธฐํ๋ ค๊ณ ํ ๊ฑด ์๋๋ฐใ ใ ใ ใ ใ ใ ใ
๋ณธ์ ์๋๊ฒ ์ถฉ๊ฒฉ์ ์๊ฒจ๋๋ ค์ ์ฃ์ก์ฐ,,,,, ใ ใ ใ ์ฟ ใ ใ ใ ใ
๊ทธ๋ฆฌ๊ณ ์ฃผ๊ฐํ๊ณ ์์ ์๋์ ๊ฐ์ ๋ํ๊ฐ ์ค๊ฐ๋ค.
๋ง๋ก ํ ๋ ์ฌ์ ๋๋ฐ,
๊ธ๋ก ์ค๋ช ํ๋ ค๋ ์ฝ์ง ์์๋ค
๋ ๋์ ์์ฌ. ๋ค..? ๋นก์ค๋์ด ๋๋ณด๊ณ ๋ฉ์ง๋ค๊ณ ....????? ๐๐ฎ
์๋ง ๋นก์ค๋์ด ๋ ๋ฉ์ง๋~
ํค์ญ.. ๋ ๋ฉ์ง๊ฒ ๋๋ตํ๋ ์ฐ์ต์ ํด์ผ๊ฒ ๋ค.
์ ์ด๊ฑธ ์ ๋จ๊ธฐ๋๋ฉด,
์ฌ์ค ์๋ ์ ๋ฐ ์ ๋๋ ๊ณ์ํด์ ๋ด๊ฐ ๋ชปํ๋ค๋ ์๊ฐ์ ํ๋ฉด์ ๊ณต๋ถํ๊ณ ,
๊ณ ๋ฏผ์ ๋ง์ด ํ๋ค๊ฐ ์ง๊ธ์ ๊ณต๋ถ๋ฅผ ๋ณํํ๋ฉด์ ๋ค๋ฅธ ๊ธธ์ด ์๋์ง ํ์์ค์ด๊ธฐ ๋๋ฌธ์ด๋ค.
๊ทธ๋ ๋ค๊ณ ๊ฐ๋ฐ ๊ณต๋ถํ๋ ๊ฒ ์ซ์ ๊ฑด ์ ํ ์๋๋ผ์, ์ฌ์ค์ ๊ฐ๋ฒผ์ด ๋ง์์ผ๋ก ๊ณต๋ถํ๊ณ ์๋๋ฐ
๊ทธ๋์ ๊ทธ๋ฐ์ง ๋ ์ฌ๋ฐ์ด์ง๊ธด ํ๋ค.
์๊ฐ๋ณด๋ค ๊ธฐ์ ์ ์ธ ์ฃผ์ ๋ก ๋ด ์๊ฒฌ์ ๋งํ ๊ธฐํ๊ฐ ์์๋๋ฐ (์ ๋ชฐ๋ผ์ ๊ทธ๋ ๊ธฐ๋ ํ๊ณ )
์ด ์ ์ ํ ๊ณต๋ถ๋ค์ด ๊ทธ๋๋ ๋จ์๋ ์๊ตฌ๋ ์๊ฐ์ด ๋ค์๋ค.
๋๋ ์ ๋ชจ๋ฅด๊ฒ ๋ค! ์ผํธ!
๐ต ์๊ฐ ๊ธฐ๋ก
๊ทผ๋ฐ ์ญ์๋ ํ๊ณ ๋ค๋ฉด์ ๊ณต๋ถํ์ง ์์ผ๋ ๋์ง ์๋ ๊ฒ ๊ฐ๋ค.
'Progress > ๐ ๋ ธ๋ง๋์ฝ๋ ๋ฆฌ์กํธ4๊ธฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[6์ฃผ์ฐจ] ์ฃผ๊ฐํ๊ณ ๋ก (0) | 2024.03.27 |
---|---|
[5์ฃผ์ฐจ] ์ฃผ๊ฐํ๊ณ ๋ก (0) | 2024.03.20 |
[3์ฃผ์ฐจ] ์ฃผ๊ฐํ๊ณ ๋ก (0) | 2024.03.06 |
[2์ฃผ์ฐจ] ์ฃผ๊ฐํ๊ณ ๋ก (0) | 2024.02.21 |
[1์ฃผ์ฐจ] ์ฃผ๊ฐํ๊ณ ๋ก (0) | 2024.02.19 |