๋ค์ ์ฃผ ํ์์ผ์ด๋ฉด ์ด๋ฒ ํ๋ก์ ํธ๋ ๋์ด๋ค. ์ ๋๋ ๊ธฐ๋ฅ์ ์ฐ์ ๋ฒ๋ฆฌ๊ณ ๊ฐ๊ธฐ๋ก ํ๋ค. ์ง๋ ์ฃผ ๊ธ์์ผ๋ถํฐ ๊ณ ๋ฏผํ๊ณ ํด๊ฒฐ์ด ์ ๋๋ ๋ฌธ์ ๊ฐ ์๋๋ฐ ์ค๊ฐ์ ์๋ฒ ํด๋ผ์ด์ธํธ ์ฝ๋ ์์ ๋ ํด ๋ณด๋ฉด์ ํด๊ฒฐํ๋ ค ๋ ธ๋ ฅํ์ผ๋ ์คํจ์์ ์ ๋นํ ์ ์ถฉ์์ ์ฐพ์๋ค. ๋ง๋ํ ๊ธฐ๋ฅ๊ตฌํ์ ์ ๋์ง๋ง ๋ง์ด ์๋ํด ๋ดค๊ณ , ํ๋ก์ ํธ ๊ธฐ๊ฐ์ด ๋๋ ํ์๋ ์ถฉ๋ถํ ๊ณ ๋ฏผํด ๋ณผ ์ ์์ผ๋ ์ ํ๊ณผ ์ง์ค ๐๐ป
์๊ฐ๋ณด๋ค ์ฝ๊ฒ ๋ง๋ค์๋ ๋ก๋ฉ ์คํผ๋! ์ฌ๋ฌ ์ ๋๋ฉ์ด์ ํจ๊ณผ๋ฅผ ๋ฃ์ด๋ณด๋ค๊ฐ ๊ฒฐ๊ตญ์๋ ๋ง๋ค์ด์ ธ์๋ gif ๋ฅผ ์ด์ฉํ๋ค. ์ญ์ ๋ง๋ค์ด์ง๊ฒ ์ ค ๊น๋ํ๊ณ ์์๋ค ๐ค
์คํผ๋๋ฅผ ์ฌ์ฉํ ์ปดํฌ๋ํธ์ ๋ก๋ฉ์ํ๋ฅผ ๋ง๋ค์ด์ฃผ๊ณ , fetch ๋ฅผ ๋ฐ์์ค๋ ํจ์์ ๋ฃ์ด์ฃผ๋ฉด ๋ !
๋์ ๊ฒฝ์ฐ๋ ํด๋ฆญํ๋ฉด ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ค๋๋ฐ 2-3์ด ์ ๋ ์์๋์ด ๊ทธ ์๊ฐ์ ์คํผ๋๋ฅผ ๋๋ ธ๋ค. ํด๋ฆญํ๋ฉด isLoading ์ true ๋ก ์ค์ ํ์ฌ ์คํผ๋๋ฅผ ๋ณด์ฌ์ฃผ๊ณ , ๋ฐ์ดํฐ๋ฅผ ๋ค ๋ฐ์์จ ์์ ์ isLoading ์ false ๋ก ์ค์ ํ์ฌ ์คํผ๋๋ฅผ ์์ ๋ ์์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํ๋ค.
์ญ์ ์๊ฐ์ ํจ๊ณผ๊ฐ ๋ค์ด๊ฐ๋ ํจ์ฌ ์์๊ณ ๊ท์ฌ์ ๋ค. ๊ท์ฌ์ด๊ฑฐ ์ต๊ณ ๐ค
import DotSpinner from '../components/DotSpinner'; // ์คํผ๋ ๋ฐ์์ค๊ณ
const [isLoading, setIsLoading] = useState(false); // ๋ก๋ฉ ์ํ ๋ง๋ค๊ณ ,
const handleClickNum = () => {
setIsLoading(true) // ํด๋ฆญํ๋ฉด ๋ฐ๋ก ์คํผ๋ ๋ณด์ฌ์ฃผ๊ธฐ
axios.post(...).... // ๋ฐ์ดํฐ ๋ฐ์์ค๋ ์ค..
.then(() => {
setIsLoading(false); // ๋ค ๋ฐ์์ก์ผ๋ฉด ์คํผ๋ ์์ ๊ธฐ
})
}
๋ ํด์ผ์ง ํด์ผ์ง ํ๋ฉด์ ์๊ทผํ ๋ฏธ๋ค์ก๋ ๋ฐ์ํ !! ๋๋์ด ํ๋ค. ๊ตฌ์กฐ๊ฐ ํํํ๋ค๋ฉด ํฌ๊ฒ ์ด๋ ต์ง ์์ ์์
์ด๋ผ ๋๊ผ๋ค.
๋๋ mypage ์คํ์ผ๋ง์ ๋งก์์ ํ๊ณ , mypage๋ ์ ์ ๋ ๋ฒจ ๋ฐ ๋ฑ์ง๋ฅผ ํ์ธํ๋ ๋ถ๋ถ ๋ฐ ๋ค๋ฅธ ์น์ ๋ค๋ก ๋๋ ์ ธ ์๋๋ฐ, ๊ทธ ์ค ๋ฑ์ง ๋ถ๋ถ์ ๋ค๋ฅธ ํ์๋ถ์ด ์์ ํ์ ๋ถ๋ถ์ด๋ผ ์ฌ์ค ๊ตฌ์กฐ๋ฅผ ์์ ๋ค ๋ฏ์๋ค.. ๋ค๋ฅธ ๋ถ์ด ์ง ๊ตฌ์กฐ์ ์คํ์ผ๋ง์ ์ ํ๋ ๊ฒ์ ์ฐธ ์ด๋ ต๋ค .. ๊ทธ๋๋ ๋๋ฆ html structure ์ ์ง๋๋ฐ๋ ์์ ์์ด์ (..?) ์์ ์๊ฒ ๋ค ๋ฏ์ด๋ฒ๋ ธ๋ค.
๊ทธ๋ฆฌํ์ฌ mypage ๋ฐ์ํ๋ ๋ฝ์งํ๊ฒ ์์ฑํ๋ค !! ๊น๋ํ๋ฉด์๋ ๊ท์ฌ์ด UI ๋ฅผ ์ ํธํ๊ธฐ์ ๋ด๊ฐ ์ํ๋ ๋ฐฉํฅ๋๋ก ๋์์ธ์ด ๊ท์ฝ๊ฒ ๋์จ ๊ฒ ๊ฐ์์ ๋ง์กฑ์ค๋ฝ๋ค.
์ด๋ฒ ๊ธฐํ์ media query ๋ ์จ๋ณด๊ณ , ๋ฐ์ํ ์น ๋์์ธ์ ์ํด ์ด๋ค ์ ์ ๊ณ ๋ คํด์ผํ๋์ง๋ ์๊ฐํด ๋ณด๊ฒ ๋์๋ค. ๊ฐ๋จํ ํ์ด์ง๋ ๋ชฐ๋ผ๋ ๋ฐ์ํ ๋์์ธ์ด ํฐ ๋ชฉ์ ์ธ ์๋น์ค๋ผ๋ฉด ์์ ์์ด์ดํ๋ ์๋ ๋ฐ๋ก ๋๋๊ณ , ๋ฐ๋ก ์ฝ๋๋ฅผ ์ ์ํ๋๊ฒ ์ข์ ๊ฒ ๊ฐ๋ค๊ณ ์๊ฐํ๋ค. ๊ทธ๋์ผ ๋ ๊น๋ํ๊ฒ ๋จ์ด์ง๋ ๋์์ธ์ ๋ด๊ฐ ์ํ๋๋๋ก ์ ์ฝ์์ด ๊ตฌํํ ์ ์์ ๊ฒ ๊ฐ๋ค.
๊น๋ํ๋ฉด์๋ ์ธ๋ จ๋๊ณ , ๋ณต์กํ์ง ์์ผ๋ฉด์๋ ๋น์ด๋ณด์ด์ง ์๋.. ๊ทธ๋ฐ ๋๋ฉํ์ด์ง. ๋ฑ ๋ด๊ฐ ์ํ๋ ์กฐ๊ฑด์ด์ง๋ง ์ฐธ ์ด๋ ต๋ค ใ
ใ
ใ
์๋ ๋ฏธ์ ๊ฐ๊ฐ์ 1000% ๋์ด์ฌ๋ ค ๋ง๋๋ ์ค์ด๋ค. ์์ง๊น์ง ๋ง์ ๋ ๋ค. ์๊ฐ๋ณด๋ค ๋ฉ์ธ ์ปฌ๋ฌ๋ฅผ ๋ฏธ๋ฆฌ ์ ๋ฝ์๋์ ์ ์กฐํฉ์ด ์์ํ๋ค. ์ค๋ ๋งก์ ๋ถ๋ถ์ ๋ค ๋๋ด๊ณ ์๋ ค๊ณ ํ๋๋ฐ, ๋ง์ง๋ง ํ ์น์ ์ด ์ข ์ด๋ ต๋ค. ์ด๋ป๊ฒ ํํํด์ผํ ์ง ๊ณ ๋ฏผํ๋ ์๊ฐ์ด ์ฐธ ๊ธธ๋ค.