๐Ÿ’ป[React Native] ๊ฐ•์˜ ๋„์ 

ํ˜ฑยท2023๋…„ 1์›” 7์ผ

์›น์„ ํƒ€๊ฒŸ์œผ๋กœ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ์ตœ์ข…์ ์ธ ๋งˆ๊ฐ ์ž‘์—…(์•ฑ)์œผ๋กœ ํ™œ์šฉ ๊ฐ€๋Šฅ
๊ธ€์ž๋ฅผ ๋„ฃ๊ณ  ์‹ถ์„ ๋•Œ๋Š” ๊ผญ <Text>๋กœ ํ‘œ์‹œ!
๊ทธ๋ƒฅ ๋ฐ”๋กœ <div> <p> ๋“ฑ์„ ๋„ฃ์„ ์ˆ˜๋Š” ์—†์Œ
์ค‘๊ด„ํ˜ธ-> js ํ‘œ์‹œ ์–ด๋–ค ๊ฒƒ๋“ค ๋ชจ๋‘ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ์Œ
๋ณ€์ˆ˜๊ฐ€ ๋ฐ”๊นฅ์— ์žˆ์–ด๋„ ์‚ฌ์šฉํ•œ global scope ์‚ฌ์šฉ ๊ฐ€๋Šฅ(js ๊ทœ์น™ ๊ทธ๋Œ€๋กœ ๋”ฐ๋ฆ„)
js์˜ ํ‘œํ˜„์‹์ด ๊ฐ€๋Šฅํ•œ XML
๋‚ด์šฉ์ด ์—†๋Š” VIEW ๋‹จ์ถ• ํ‘œํ˜„์ด ๊ฐ€๋Šฅ<VIEW/>
์ค‘๊ด„ํ˜ธ๊ฐ€ ๋“ฑ์žฅ
onPress ์•ˆ์—๋‹ค ํ•จ์ˆ˜ ์ „๋‹ฌ
state->๋‹จ์ˆœ ๋ณ€์ˆ˜๊ฐ€ ์•„๋‹Œ ํ™”๋ฉด์— ์ถœ๋ ฅ์„ ํ•˜๊ธฐ ์œ„ํ•œ ๋ณ€์ˆ˜!

ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ: ๋ฐ˜๋“œ์‹œ return์ด ์žˆ์–ด์•ผํ•จ!

์–ด๋–ป๊ฒŒ ํ™”๋ฉด์— ํ‘œ์‹œ๋  ๊ฒƒ์ธ๊ฐ€?์— ๋Œ€ํ•œ ์ตœ์†Œํ•œ์˜ ๋‚ด์šฉ์ด ๋“ค์–ด์žˆ์–ด์•ผ ํ•จ
ํ•จ์ˆ˜ ํ•˜๋‚˜ํ•˜๋‚˜์— ์ตœ์†Œํ™”๋œ ๋‚ด์šฉ์„ ๋‹ด๊ณ  ๊ฐ๊ฐ ์ปดํฌ๋„ŒํŠธ ์•ˆ์—๋Š” ํ•ด๋‹น ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ•ด์„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ„๋žตํ•œ ํ˜•ํƒœ์˜ ์ตœ์†Œ ๋‚ด์šฉ์„ ๊ฐ–๋„๋ก ํ•จ
๋ Œ๋”๋ง ํ•  ๋•Œ ๋งˆ๋‹ค ์‹คํ–‰๋จ : ํ™”๋ฉด์— ๊ฐฑ์‹ ์ด ์žˆ์–ด์„œ ๋ณ€ํ•˜๊ฐ€ ๋ฌด์–ธ๊ฐ€ ์žˆ์„ ๋•Œ ๋งค๋ฒˆ ๋‹ค์‹œ ํ•œ ๋ฒˆ์”ฉ ์‹คํ–‰๋จ, ๋ณ€์ˆ˜ ์„ ์–ธ ๋˜ํ•œ ๋งค๋ฒˆ ๋‹ค์‹œ ์‹คํ–‰๋˜๊ฒŒ ๋จ

๋”ฐ๋ผ์„œ useState ์‚ฌ์šฉ

STATE๋กœ ๋งŒ๋“ค์–ด์ง„ ๊ฐ’๋“ค์€ ๊ธฐ์กด์˜ ๊ฐ’์„ ๊ธฐ์–ตํ•˜๊ณ  ์žˆ์Œ
๋ณ€์ˆ˜๋กœ ์„ ์–ธ: ์ƒˆ๋กญ๊ฒŒ ๋‹ค์‹œ ์‹œ์ž‘
useState: ์ด์ „์˜ ๊ฐ’๋“ค์„ ๊ธฐ์–ต
state๋ณ€๊ฒฝ-> ๋ณ€๊ฒฝ ์ž์ฒด๊ฐ€ render๋ฅผ ํ˜ธ์ถœํ•˜๊ฒŒ ๋˜๋Š” ํŠธ๋ฆฌ๊ฑฐ
๊ฐฑ์‹ ํ•˜๊ณ  ์‹ถ์€ ์‹œ์ ์— ๊ฐฑ์‹  ๊ฐ€๋Šฅ

useState๋Š” react component์—์„œ๋งŒ ์‹คํ–‰๋˜๋„๋ก ๊ธฐ๋Šฅ

stat``e๋Š” ํ•จ์ˆ˜ ์˜์—ญ ์•ˆ์—์„œ๋งŒ ๊ฐ€๋Šฅ
๋”ฐ๋ผ์„œ ํ•จ์ˆ˜ component ์•ˆ์—์„œ๋งŒ ์‚ฌ์šฉํ•  ๋งŒํ•œ ๊ฒƒ์œผ๋กœ ์„ค์ •
์—ฌ๋Ÿฌ ๊ฐœ์˜ componenet->๊ฐ์ž ํ•„์š”ํ•œ state ์„ ์–ธ์ด ํ•„์š”

๋ฐฐ์—ด return

react dom์œผ๋กœ๋งŒ ๊ตฌ์„ฑ๋œ ๋ฐฐ์—ด์€ return์ด ๊ฐ€๋Šฅ (ํƒœ๊ทธ๋กœ ๋ฌถ์ธ)
๋ฐฐ์—ด-> mapํ•จ์ˆ˜ return์€ ๋ฐฐ์—ด, ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋งŒ๋“ฆ
๋ฐฐ์—ด๋กœ ํ™”๋ฉด ์ถœ๋ ฅ, ์ˆœ์ˆ˜ํ•˜๊ฒŒ js์˜ ์˜์—ญ

props

tag์— ์ „๋‹ฌ๋œ objective attribute๋“ค์„ js ํ˜•ํƒœ๋กœ ๋ฐ”๊พธ์–ด์„œ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ

์‹œ๊ฐ„๊ณผ ๊ด€๋ จ๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ: Luxon

useEffect, setInterval

useEffect: ๋ณ€ํ™”๋ฅผ ๊ฐ์ง€ํ•˜๋Š” hook (์ฃผ์‹œ ๋Œ€์ƒ), ์ตœ์ดˆ ํ•œ ๋ฒˆ์€ ์‹คํ–‰๋จ
์ฃผ์‹œ๋Œ€์ƒ์ด ๋น„์–ด์žˆ์œผ๋ฉด, ์ตœ์ดˆ ๋™์ž‘ ํ›„ ์•„๋ฌด ๋™์ž‘์„ ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ
useEffect๋Š” ํ•จ์ˆ˜๋ฅผ return ํ•ด์•ผํ•จ: useEffect์˜ ์ˆ˜๋ช…์ด ๋๋‚˜๋Š” ์ƒํ™ฉ= component๊ฐ€ ํ™”๋ฉด์—์„œ ์ œ๊ฑฐ๋  ๋•Œ, return

  const [date, setDate] = useState(DateTime.now());
  useEffect(() => {
  	const id = setInterval(() => {
 	 setDate(DateTime.now()); //1์ดˆ์— ํ•œ๋ฒˆ์”ฉ ๊ฐฑ์‹ ๋˜๋ฉด์„œ ํ™”๋ฉด์˜ ์‹œ๊ฐ„์ด ๋ฐ”๋€œ
     },	1000 ); //1์ดˆ์— ํ•œ ๋ฒˆ์”ฉ ์ผ์–ด๋‚˜๋Š” ๊ฒƒ
     return ()=>clearInterval(id);
	},[]);

ํ‰๊ฐ€์‹

  1. ??: undefined๋‚˜ null์ด ์™”์„ ๋•Œ ๋’ค์˜ value๊ฐ€ ์žˆ์œผ๋ฉด value๊ฐ’์„ ํ• ๋‹นํ•œ๋‹ค. , ๊ธฐ๋ณธ๊ฐ’ ํ• ๋‹น
    null ?? 'value'
  2. || : falsy(0, false, undefined, null, ' ')ํ•œ ๊ฐ’์ด ๋“ค์–ด์˜ค๋ฉด, value๋ฅผ ํ• ๋‹นํ•œ๋‹ค.
    0 || 'value'
profile
new blog: https://hae0-02ni.tistory.com/

0๊ฐœ์˜ ๋Œ“๊ธ€