๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋กreact (6)

๋‹ญ๋ฐœ๊ฐœ๋ฐœ

React์—์„œ ํ…์ŠคํŠธ ์ค„๋ฐ”๊ฟˆํ•˜๊ธฐ

react์—์„œ๋Š” ์ด๋‚˜ \n์„ ์จ๋„ ์ค„๋ฐ”๊ฟˆ ๋˜์ง€ ์•Š์•˜๋‹ค. React์—์„œ ํ…์ŠคํŠธ ์ค„๋ฐ”๊ฟˆ? const text = "๋™ํ•ด๋ฌผ๊ณผ ๋ฐฑ๋‘์‚ฐ์ด\n ๋งˆ๋ฅด๊ณ  ๋‹ณ๋„๋ก" ์œ„ ๋ฌธ์žฅ์„ React์—์„œ ์ถœ๋ ฅํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ์š”? ์ผ๋ฐ˜์ ์œผ๋กœ JSX์—์„œ๋Š” ๊ฐœํ–‰ ๋ฌธ์ž(‘\n’)๊ฐ€ ๋™์ž‘ํ•˜์ง€ ์•Š์•„ ์•„๋ž˜์™€ ๊ฐ™์ด ์ถœ๋ ฅ์ด ๋ฉ๋‹ˆ๋‹ค. ๋™ํ•ด๋ฌผ๊ณผ ๋ฐฑ๋‘์‚ฐ์ด ๋งˆ๋ฅด๊ณ  ๋‹ณ๋„๋ก ๊ทธ๋Ÿฌ๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์ค„๋ฐ”๊ฟˆ ํƒœ๊ทธ์ธ ์„ ์‚ฌ์šฉํ•˜๋ฉด ์–ด๋–จ๊นŒ์š”? const text = "๋™ํ•ด๋ฌผ๊ณผ ๋ฐฑ๋‘์‚ฐ์ด ๋งˆ๋ฅด๊ณ  ๋‹ณ๋„๋ก" ์ด ๋ฌธ์ž ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค. ๋™ํ•ด๋ฌผ๊ณผ ๋ฐฑ๋‘์‚ฐ์ด ๋งˆ๋ฅด๊ณ  ๋‹ณ๋„๋ก ์•„๋‹ˆ ๊ทธ๋Ÿฌ๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•˜๋‚˜์š”? CSS ์ƒ์—์„œ white-space:pre-wrap์„ ์„ค์ •ํ•ด์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. white-space: pre-wrap; ๊ฐœํ–‰ ๋ฌธ์ž(‘\n’)์„ ์ž˜ ์ธ์‹ํ•˜์—ฌ ์ค„๋ฐ”๊ฟˆํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•˜๊ฒŒ ..

React 2023. 3. 30. 17:56
๋ Œ๋”๋ง rendering

๋‚˜๋Š” ๋ฆฌ์•กํŠธ์—์„œ ๋ Œ๋”๋ง ์ด์•ผ๊ธฐ๋งŒ ๋‚˜์˜ค๋ฉด ์ง€๋ ˆ ๊ฒ์„ ๋จน๋Š”๋‹ค. ๊ฐ€์žฅ ์–ด๋ ค์šด ๋ถ€๋ถ„์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. [์ƒํ™ฉ] ๋ถ€๋ชจ - ์ž์‹ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์žˆ์œผ๋ฉด ๋ถ€๋ชจ์—์„œ ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ, ์ž์‹ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ฐ”๋€Œ์–ด์•ผ ํ•œ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋ Œ๋”๋ง์ด ์•ˆ๋˜๊ณ  ์ž์‹ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ฐ”๋กœ ๋ฐ”๋€Œ์ง€ ์•Š์Œ. ์šฐ๋ฆฌ๋Š” ๋ Œ๋”๋ง์ด ํ•„์š”ํ•œ ์ƒํ™ฉ! ๊ทธ๋Ÿฐ๋ฐ ๊ตฌ๊ธ€๋ง ํ•ด๋ณด๋ฉด ๋‹ค ๋ Œ๋”๋ง์„ ๋ง‰๋Š” ๊ธ€๋“ค ๋ฟ์ด์—ˆ๋‹ค. ํ•ด๊ฒฐํ•œ ๋ฐฉ๋ฒ•์€ ์‰ฌ์šด ๋ฐฉ๋ฒ•. [ํ•ด๊ฒฐ] ๋ณด์—ฌ์ค„ ๊ฐ’์ด ๋ฐ”๋€Œ์—ˆ๋‹ค๋Š”๊ฑธ ์ž์‹ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์•Œ ์ˆ˜ ์žˆ๋„๋ก "๊ฐ’์ด ๋ฐ”๋€œ"์„ state๋กœ ๊ด€๋ฆฌํ•œ๋‹ค. // ๋ถ€๋ชจ๊ฐ€ ์ž์‹์—๊ฒŒ ์šฐ๋ฆฌ ๋ณ€ํ–ˆ์–ด! ๋ผ๊ณ  ์•Œ๋ ค์ค„ ํžŒํŠธ const [initPage, setInitPage] = useState(false); useLayoutEffect(() => { setInitPage(true); }); if(์ˆ˜์ •์ด ์„ฑ๊ณตํ•˜๋ฉด)..

React 2023. 3. 7. 14:54