
์น์ ํ๊ฒ์ผ๋ก ๊ฐ๋ฅํ๋ฉฐ, ์ต์ข ์ ์ธ ๋ง๊ฐ ์์ (์ฑ)์ผ๋ก ํ์ฉ ๊ฐ๋ฅ
๊ธ์๋ฅผ ๋ฃ๊ณ ์ถ์ ๋๋ ๊ผญ<Text>๋ก ํ์!
๊ทธ๋ฅ ๋ฐ๋ก<div> <p>๋ฑ์ ๋ฃ์ ์๋ ์์
์ค๊ดํธ-> js ํ์ ์ด๋ค ๊ฒ๋ค ๋ชจ๋ ๋ค์ด๊ฐ ์ ์์
๋ณ์๊ฐ ๋ฐ๊นฅ์ ์์ด๋ ์ฌ์ฉํ global scope ์ฌ์ฉ ๊ฐ๋ฅ(js ๊ท์น ๊ทธ๋๋ก ๋ฐ๋ฆ)
js์ ํํ์์ด ๊ฐ๋ฅํ XML
๋ด์ฉ์ด ์๋ VIEW ๋จ์ถ ํํ์ด ๊ฐ๋ฅ<VIEW/>
์ค๊ดํธ๊ฐ ๋ฑ์ฅ
onPress ์์๋ค ํจ์ ์ ๋ฌ
state->๋จ์ ๋ณ์๊ฐ ์๋ ํ๋ฉด์ ์ถ๋ ฅ์ ํ๊ธฐ ์ํ ๋ณ์!
ํจ์ ์ปดํฌ๋ํธ: ๋ฐ๋์ return์ด ์์ด์ผํจ!
์ด๋ป๊ฒ ํ๋ฉด์ ํ์๋ ๊ฒ์ธ๊ฐ?์ ๋ํ ์ต์ํ์ ๋ด์ฉ์ด ๋ค์ด์์ด์ผ ํจ
ํจ์ ํ๋ํ๋์ ์ต์ํ๋ ๋ด์ฉ์ ๋ด๊ณ ๊ฐ๊ฐ ์ปดํฌ๋ํธ ์์๋ ํด๋น ์ปดํฌ๋ํธ๋ฅผ ํด์ํ ์ ์๋ ๊ฐ๋ตํ ํํ์ ์ต์ ๋ด์ฉ์ ๊ฐ๋๋ก ํจ
๋ ๋๋ง ํ ๋ ๋ง๋ค ์คํ๋จ : ํ๋ฉด์ ๊ฐฑ์ ์ด ์์ด์ ๋ณํ๊ฐ ๋ฌด์ธ๊ฐ ์์ ๋ ๋งค๋ฒ ๋ค์ ํ ๋ฒ์ฉ ์คํ๋จ, ๋ณ์ ์ ์ธ ๋ํ ๋งค๋ฒ ๋ค์ ์คํ๋๊ฒ ๋จ๋ฐ๋ผ์ useState ์ฌ์ฉ
STATE๋ก ๋ง๋ค์ด์ง ๊ฐ๋ค์ ๊ธฐ์กด์ ๊ฐ์ ๊ธฐ์ตํ๊ณ ์์
๋ณ์๋ก ์ ์ธ: ์๋กญ๊ฒ ๋ค์ ์์
useState: ์ด์ ์ ๊ฐ๋ค์ ๊ธฐ์ต
state๋ณ๊ฒฝ-> ๋ณ๊ฒฝ ์์ฒด๊ฐ render๋ฅผ ํธ์ถํ๊ฒ ๋๋ ํธ๋ฆฌ๊ฑฐ
๊ฐฑ์ ํ๊ณ ์ถ์ ์์ ์ ๊ฐฑ์ ๊ฐ๋ฅ
stat``e๋ ํจ์ ์์ญ ์์์๋ง ๊ฐ๋ฅ
๋ฐ๋ผ์ ํจ์ component ์์์๋ง ์ฌ์ฉํ ๋งํ ๊ฒ์ผ๋ก ์ค์
์ฌ๋ฌ ๊ฐ์ componenet->๊ฐ์ ํ์ํ state ์ ์ธ์ด ํ์
react dom์ผ๋ก๋ง ๊ตฌ์ฑ๋ ๋ฐฐ์ด์ return์ด ๊ฐ๋ฅ (ํ๊ทธ๋ก ๋ฌถ์ธ)
๋ฐฐ์ด-> mapํจ์ return์ ๋ฐฐ์ด, ์๋ก์ด ๋ฐฐ์ด์ ๋ง๋ฆ
๋ฐฐ์ด๋ก ํ๋ฉด ์ถ๋ ฅ, ์์ํ๊ฒ js์ ์์ญ
tag์ ์ ๋ฌ๋ objective attribute๋ค์ js ํํ๋ก ๋ฐ๊พธ์ด์ ์ ๋ฌํ๋ ๊ฒ
useEffect: ๋ณํ๋ฅผ ๊ฐ์งํ๋ hook (์ฃผ์ ๋์), ์ต์ด ํ ๋ฒ์ ์คํ๋จ
์ฃผ์๋์์ด ๋น์ด์์ผ๋ฉด, ์ต์ด ๋์ ํ ์๋ฌด ๋์์ ํ์ง ์๋ ๊ฒ
useEffect๋ ํจ์๋ฅผ return ํด์ผํจ: useEffect์ ์๋ช ์ด ๋๋๋ ์ํฉ= component๊ฐ ํ๋ฉด์์ ์ ๊ฑฐ๋ ๋, returnconst [date, setDate] = useState(DateTime.now()); useEffect(() => { const id = setInterval(() => { setDate(DateTime.now()); //1์ด์ ํ๋ฒ์ฉ ๊ฐฑ์ ๋๋ฉด์ ํ๋ฉด์ ์๊ฐ์ด ๋ฐ๋ }, 1000 ); //1์ด์ ํ ๋ฒ์ฉ ์ผ์ด๋๋ ๊ฒ return ()=>clearInterval(id); },[]);
- ??: undefined๋ null์ด ์์ ๋ ๋ค์ value๊ฐ ์์ผ๋ฉด value๊ฐ์ ํ ๋นํ๋ค. , ๊ธฐ๋ณธ๊ฐ ํ ๋น
null ?? 'value'- || : falsy(0, false, undefined, null, ' ')ํ ๊ฐ์ด ๋ค์ด์ค๋ฉด, value๋ฅผ ํ ๋นํ๋ค.
0 || 'value'