[LG ์ ๋ ์นด] ๐ช๋ฆฌ์ฝ๋ ์คํฐ๋
useEffect()
React์์ ์ฌ์ด๋ ์ดํํธ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ํ ์ด๋ค.
์ปดํฌ๋ํธ๊ฐ ๋ ๋๋ง๋ ์ดํ์ ์ด๋ค ์์ ์ ์ํํ๊ณ ์ ํ ๋ ์ฌ์ฉ๋๋ค.
` ex) ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ(fetch), DOM ์ ๋ฐ์ดํธ, ๊ตฌ๋ ์ค์ ๋ฐ ํด์ ๋ฑ`
ํน์ง
-
์ปดํฌ๋ํธ๊ฐ ๋ง์ดํธ๋ ๋
์ปดํฌ๋ํธ๊ฐ ์ฒ์ ๋ ๋๋ง๋ ํ์ ํธ์ถ๋๋ค.
-
์ปดํฌ๋ํธ๊ฐ ์ ๋ฐ์ดํธ๋ ๋
์ปดํฌ๋ํธ๊ฐ ๋ค์ ๋ ๋๋ง๋ ๋, ํน์ ๊ฐ์ด ๋ณ๊ฒฝ๋์์ ๋ ํธ์ถ๋๋ค.
-
์ปดํฌ๋ํธ๊ฐ ์ธ๋ง์ดํธ๋ ๋
์ปดํฌ๋ํธ๊ฐ ํ๋ฉด์์ ์ ๊ฑฐ๋๊ธฐ ์ ์ ์ ๋ฆฌ ์์ ์ ์ํํ ์ ์๋ค.
ํํ
import {useEffect} from 'react';
useEffect(() => {
//์คํํ ์ฝ๋
return () => {
//์ ๋ฆฌ ์์
};
},[/*์์กด์ฑ ๋ฐฐ์ด*/]);
์์กด์ฑ ๋ฐฐ์ด์์ ํฌํจ๋ ๊ฐ์ด ๋ณ๊ฒฝ ๋ ๋๋ง๋ค useEffect๊ฐ ๋ค์ ์คํ๋๋ค. ๋น ๋ฐฐ์ด์ ๋ฃ์ผ๋ฉด ์ปดํฌ๋ํธ๊ฐ ์ฒ์ ๋ง์ดํธ ๋ ๋ ํ ๋ฒ๋ง ์คํ๋๋ค.
import React, {useState, useEffect} from 'react';
funtion Timer(){
const [count, setCount] = useState(0);
useEffect(() => {
const interval = setInterval(() => {
setCount((prevCount) => prevCount+1);
}, 1000);
return () => clearInterval(interval);
}, []);
return <div>ํ์ด๋จธ: {count}</div>
}
export defult Timer;
CSS
Flexbox
flexbox
๋ ๋ฌด์์ผ๊น??
ํ๋ ์ค ๋ฐ์ค๋ ์ ๋์ ์ผ๋ก ๊ฐ ์์๋คใ ๋ฅด ๋ฐฐ์นํ๋ ๊ธฐ๋ฒ์ ๋๋ค.
์๋ฅผ ๋ค์ด์, ๊ฐ ์ฌ์ฉ์๋ค๋ง๋ค ํ๋ฉด ํฌ๊ธฐ๊ฐ ๋ค๋ฅธ ์ ์๊ธฐ๊ธฐ๋ฅผ ์ด์ฉํ์ฌ ์น์ฌ์ดํธ๋ฅผ ๋ณด๊ฒ ๋ ํ ๋ฐ ๊ฐ ํ๋ฉด์ ๋ง๋ ๋ฐฐ์น๋ฅผ ์ผ์ผ์ด ๊ณ์ฐํ ํ์์์ด Flexbox๋ฅผ ์ด์ฉํด์ ์์ฝ๊ฒ ๊ตฌ์ฑํ ์ ์๋ค.
Flexbox๋ฅผ ์ด์ํ๋ฉด ์น์ฌ์ดํธ์ ์์๋ค์ ์ํ์ ์ผ๋ก ๋ฐฐ์นํ ์ ์๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ์์์ ์๋๋ก ์์ด๋ ํํ์ธ๋ฐ ์ํ๋ฐฐ์น๊ฐ ๋๋ค.
flexbox
๋ฅผ ์ ์ฉํ๊ณ ์ถ์ ์์์๋ค๊ฐ ์ถ๊ฐํ๋ ๊ฒ์ด ์๋ ๋ถ๋ชจ ์์์ ์ถ๊ฐํด์ผํ๋ค.
flex-direction
์ ์ด์ฉํด์ ๋ฉ์ธ ์ถ์ ์ธ๋ก๋ก ๋ณ๊ฒฝํ๋ ๊ฒ๋ ๊ฐ๋ฅํ๋ค.
์๊ฐํด๋ด์ผํ๋ ๊ฒ
- DOM์ด๋ ๋ฌด์์ธ๊ฐ์?
- JavaScript๋ก DOM์ ์กฐ์ํ๋ ๋ฐฉ๋ฒ์ ์ด๋ค ๊ฒ์ด ์๋์?
- Semantic tag์๋ ์ด๋ค ๊ฒ์ด ์์ผ๋ฉฐ, ์ด๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ ๋ฌด์์ผ๊น์?
- Flexbox Layout์ ๋ฌด์์ด๋ฉฐ, ์ด๋ป๊ฒ ์ฌ์ฉํ๋์?
๋๊ธ๋จ๊ธฐ๊ธฐ