JunhOpportunity / deep-react

๐Ÿ‘€ React์˜ ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ๋œฏ์–ด๋ณด๋ฉฐ ์ƒˆ๋กญ๊ฒŒ ๊นจ๋‹ฌ์€ ๋‚ด์šฉ๋“ค์„ ์ •๋ฆฌํ•ด๋ณด์ž

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

deep-react

๐Ÿ‘€ React์˜ ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ๋œฏ์–ด๋ณด๋ฉฐ ์ƒˆ๋กญ๊ฒŒ ๊นจ๋‹ฌ์€ ๋‚ด์šฉ๋“ค์„ ์ •๋ฆฌํ•ด๋ณด์ž ๐Ÿค” 11์›” ๋‘˜์งธ์ฃผ๊นŒ์ง€ ๊ณต์‹ ๋ฌธ์„œ์— ๋Œ€ํ•œ 1์ฐจ ์ •๋ฆฌ๋ฅผ ์™„๋ฃŒํ•œ ๋’ค์— ๋ณต์Šต์„ ์ง„ํ–‰ํ•˜๋ฉฐ ๋‚ด์šฉ์„ ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ฒŒ ๋‹ค๋“ฌ๋Š” ๊ณผ์ •์„ ๊ฑฐ์น  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

์‹คํ—˜์‹ค(v19 ๋ฒ„์ „์—์„œ ์ถœ์‹œ ์˜ˆ์ •์ธ ํ›…์ด๋‚˜ ์•„์ง ์—ฐ๊ตฌ์ค‘์ธ ๊ฒƒ๋“ค)

์ปดํฌ๋„ŒํŠธ ๋‚ด์—์„œ Promise ๋˜๋Š” Context์™€ ๊ฐ™์€ ๋ฆฌ์†Œ์Šค ๊ฐ’์„ ์ฝ์„ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” React์˜ Hook

RFC ๋ฌธ์„œ

use hook ๊ด€๋ จ ์ •๋ณด๋“ค์„ ๋‹ด์€ ์ถœ์‹œ ์ „ ๋ฌธ์„œ

์ตœ์‹  ๋ฒ„์ „ (๋ชฉ์ฐจ์™€ ์š”์•ฝ)

HTML์ฒ˜๋Ÿผ ์ž‘์„ฑ๋˜์—ˆ์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ๋Š” JavaScript

Props๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ˆœ์ˆ˜ํ•˜๊ฒŒ ๋งŒ๋“ค์ž

{children} ์„ ์ ๊ทน ํ™œ์šฉํ•˜์ž

์ปดํฌ๋„ŒํŠธ๋Š” MarkUP์„ ๋ฟŒ๋ฆด ์ˆ˜ ์žˆ๋Š” JS ํ•จ์ˆ˜์ด๋‹ค

๋ฃจํŠธ ์ปดํฌ๋„ŒํŠธ์—์„œ ๋‹ค๋ฅธ ์ปดํฌ๋„ŒํŠธ๋“ค์„ ์ƒ์„ฑํ•˜์ง€ ๋ง๊ณ , ์ƒˆ๋กœ์šด ํŒŒ์ผ์„ ์ƒ์„ฑํ•ด ๋”ฐ๋กœ ์ž‘์„ฑ

์ค‘๊ด„ํ˜ธ๋ฅผ ์‚ฌ์šฉ

null ๋ฐ˜ํ™˜์€ ํ˜ผ๋ž€์„ ์•ผ๊ธฐํ•  ์ˆ˜ ์žˆ๋‹ค

React ๋ Œ๋”๋ง์€ ์ง€์—ญ ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ณ ๋ คํ•˜์ง€ ์•Š๋Š”๋‹ค.

์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ์— ์ „๋‹ฌ๋œ ํ•จ์ˆ˜๋Š” ํ˜ธ์ถœ๋˜์ง€ ์•Š๊ณ  ์ „๋‹ฌ๋˜์–ด์•ผ ํ•œ๋‹ค. (ํ•จ์ˆ˜ ์ด๋ฆ„๋งŒ ์ „๋‹ฌ)

React๊ฐ€ ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ

๊ฐ์ฒด ์ƒํƒœ๋ฅผ ์ง์ ‘ ๋ณ€๊ฒฝํ•ด์„œ๋Š” ์•ˆ๋œ๋‹ค. ๋ฐ˜๋“œ์‹œ ์ƒˆ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ๋ณต์‚ฌํ•ด์„œ ๋ณ€๊ฒฝํ•ด์•ผ ํ•œ๋‹ค. ๋ฆฌ์—‘ํŠธ๊ฐ€ ์ƒํƒœ ๋ณ€ํ™”๋ฅผ ๊ฐ์ง€ํ•˜์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

React๋Š” UI๋ฅผ ์ง์ ‘ ์กฐ์ž‘ํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋Œ€์‹ , ๋ณด์—ฌ์ฃผ๊ณ  ์‹ถ์€ ๊ฒƒ์„ ์„ ์–ธํ•˜๋ฉด ๋œ๋‹ค.

์–ด๋–ค ์ƒํ™ฉ์—์„œ ์–ด๋–ค ๊ตฌ์กฐ์˜ ์ƒํƒœ๊ฐ€ ๊ฐ€์žฅ ํšจ์œจ์ ์ผ๊นŒ

๊ณตํ†ต ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ์—์„œ props๋กœ ์ƒํƒœ๋ฅผ ์ „๋‹ฌ ๋ฐ›๋Š”๋‹ค

์ปดํฌ๋„ŒํŠธ๊ฐ€ ์‚ด์•„์žˆ๋‹ค๋ฉด ์ƒํƒœ๋Š” ์œ ์ง€๋˜๊ณ , ์ฃฝ์—ˆ๋‹ค๊ฐ€ ๋‹ค์‹œ ์‚ด์•„๋‚œ๋‹ค๋ฉด ์ƒํƒœ๊ฐ€ ์žฌ์„ค์ • ๋œ๋‹ค

useState์™€ ๋น„์Šทํ•˜์ง€๋งŒ, ์ƒํƒœ์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๊นŒ์ง€ ํ•œ ๋ฒˆ์— ๋ชจ์•„๋‘˜ ์ˆ˜ ์žˆ๋Š” ํšจ์œจ์ ์ธ ํ›…์ด๋‹ค.

Props ์ „๋‹ฌ ๋ง๊ณ  ์ปดํฌ๋„ŒํŠธ์˜ ๋ฐ์ดํ„ฐ๋ฅผ โ€œํ…”๋ ˆํฌํŠธโ€ ํ•˜๋Š” ๋ฐฉ๋ฒ•. ์ „์—ญ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉ

useEffect ๋‚ด๋ถ€์˜ ์ฝ”๋“œ๋Š” ๋งˆ์šดํŠธ ๋˜์—ˆ์„ ๋•Œ ์‹คํ–‰๋˜๊ณ , useEffect ๋‚ด๋ถ€์˜ return์€ ๋งˆ์šดํŠธ๊ฐ€ ํ•ด์ œ๋  ๋•Œ ์‹คํ–‰๋œ๋‹ค.

ํŠน์ • ๋™์ž‘์„ ์‹คํ–‰์‹œํ‚ค๊ณ  ์‹ถ์€๋ฐ, ์›์น˜ ์•Š๋Š” ๋‹ค๋ฅธ ๋™์ž‘๋„ ํ•จ๊ป˜ ์‹คํ–‰๋œ๋‹ค๋ฉด useEffect์—์„œ ์ œ๊ฑฐ ์‹œํ‚ค๊ฑฐ๋‚˜ useEffect๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋ง์•„์•ผ ํ•œ๋‹ค.

๋ชจ๋“  ์ปดํฌ๋„ŒํŠธ๋Š” ๋™์ผํ•œ ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ๊ฐ€์ง„๋‹ค.

ํŠน์ • ์ƒํ˜ธ์ž‘์šฉ์„ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•  ๊ฒฝ์šฐ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค

About

๐Ÿ‘€ React์˜ ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ๋œฏ์–ด๋ณด๋ฉฐ ์ƒˆ๋กญ๊ฒŒ ๊นจ๋‹ฌ์€ ๋‚ด์šฉ๋“ค์„ ์ •๋ฆฌํ•ด๋ณด์ž