Skip to content

Instantly share code, notes, and snippets.

View sukyoungshin's full-sized avatar
๐ŸŒฑ
Keep it steady.

SuKyoung sukyoungshin

๐ŸŒฑ
Keep it steady.
View GitHub Profile
@seonghyeonkimm
seonghyeonkimm / react-18.md
Last active June 16, 2023 18:37
React 18 ๋ฏธ๋ฆฌ๋ณด๊ธฐ

์ฆ‰์‹œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ฐœ์„ ์ 

์ฝ”๋“œ์˜ ๋ณ€๊ฒฝ ์—†์ด React 18๋กœ ์—…๋ฐ์ดํŠธํ•˜์ž๋งˆ์ž ์–ป์„ ์ˆ˜ ์žˆ๋Š” ๊ฐœ์„ ์ ์— ๋Œ€ํ•ด์„œ ๊ฐ„๋‹จํžˆ ์ดํ•ดํ•ด๋ณด์ž.

ย  ์ œ๋ชฉ์—์„œ๋„ ์•Œ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๊ฐ„๋‹จํžˆ ์„ค๋ช…ํ•˜์ž๋ฉด, React 18 ์ด์ „์—๋Š” ์˜ค์ง ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ์•ˆ์—์„œ ๋ฐœ์ƒํ•œ setState๋งŒ ๋ชจ์•„์„œ ์ฒ˜๋ฆฌ ํ–ˆ์ง€๋งŒ, React 18 ์ดํ›„๋ถ€ํ„ฐ๋Š” promise, setTimeout ๋“ฑ์—์„œ ๋ฐœ์ƒํ•œ ์—ฐ์†์ ์ธ setState๋„ ๋ชจ์•„์„œ ์ฒ˜๋ฆฌ๋  ์ˆ˜ ์žˆ๋„๋ก ๊ฐœ์„ ๋˜์—ˆ๋‹ค๋Š” ๋‚ด์šฉ์ด๋‹ค.

ย  ์œ„ ๊ธฐ๋Šฅ์„ ํ”ผํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด react-dom์˜ flushSync api๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ชจ์•„์„œ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š๊ณ  ํ•˜๋‚˜์˜ setState๊ฐ€ ๋ฐ”๋กœ re-render๋ฅผ ์ผ์œผํ‚ค๋„๋ก ๋ช…์‹œ์ ์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.