-
Fragment ์์์ ๊ทธ๋ฃนํ๋ ์๋ฆฌ๋จผํธ๋ DOM ๊ฒฐ๊ณผ๋ฌผ์ ์ํฅ์ ์ฃผ์ง ์์ต๋๋ค.
- Vue2๋ฅผ ์ฌ์ฉํ ๋๋ Fragment ๊ฐ์ ๋น(?) ์๋ฆฌ๋จผํธ๊ฐ ์์ด์ ํญ์ ์๋ฏธ์๋ div๋ก ๊ฐ์ธ์ ๋ถํธํ๋๋ฐ ์ข์ ๊ฒ ๊ฐ์ต๋๋ค. (Vue3๋ถํฐ๋ Fragment๋ฅผ ์ง์ํ๋ค๊ณ ๋ดค๋ ๊ฒ ๊ฐ๊ธฐ๋ ํฉ๋๋ค..!)
-
React๋ <></>์์ []๋ก ๋ ๋๋งํ๊ฑฐ๋ (๋๋ ๋ฐ๋์ ๊ฒฝ์ฐ), ํน์ <></> ์์ ๋ ๋๋งํ๊ฑฐ๋ (๋๋ ๋ฐ๋์ ๊ฒฝ์ฐ) state๋ฅผ ์ด๊ธฐํํ์ง ์์ต๋๋ค. ์ด๋ ์ค์ง single level๊น์ง ์ ์ฉ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด <><></></> ์์ ๋ก ๋ ๋๋งํ๋ ๊ฒ์ state๊ฐ ์ด๊ธฐํ๋ฉ๋๋ค. ์ ํํ semantics๋ ์ฌ๊ธฐ์ ์ฐธ์กฐํ์ค ์ ์์ต๋๋ค.
- [์ง๋ฌธ]
- Q1. [ ]๋ก ๊ฐ์ธ๋ ๊ฒ์๋ ์๋ฏธ๊ฐ ์๋๊ฑด๊ฐ์?
- Q2. Fragment๋ก ์ด์ค์ค์ฒฉ ์ด์๋ถํฐ๋ Fragment์์ Child์ state๊ฐ ๋ณด์กด๋์ง ์๋๋ค๊ณ ์ดํดํด๋ ๋ ๊น์?
- [๋ต๋ณ]
- A1. ์ ๋ ์ด๋ฐ ํํ๋ก ๋ ๋๋งํ๋ ๋ฐฉ์์ ์ฒ์๋ด์ ๋ฐฐ์ด๋ก ๊ฐ์ธ๋ ๊ฒ ์ด๋ค ์๋ฏธ์ธ์ง ๋ชจ๋ฅด๊ฒ ๋ค์. ์๋ ์ฝ๋์๋๋ฐ์ค์์ ํ๋ ๊ฐ์ธ๋ณด๋ฉด ๋ฐฐ์ด์ด๋๊น key๋ฅผ ์ค์ ํ๋ผ๊ณ ๊ฒฝ๊ณ ๊ฐ ๋จ๊ธด ํฉ๋๋ค. ๋ ๋ฒ์งธ ์ง๋ฌธ์ ๋ํด์๋ ์ ๋ ๊ฐ์ ์๋ฏธ๋ก ์ดํดํ์ต๋๋ค. (์์ ) ๋งํฌ ๋ค์ด๊ฐ์ ๋ณด๋๊น ์ ํํ๋ ๋ ๋๋ง ์ฌ์ด์ ๊ตฌ์กฐ๊ฐ ๋ฐ๋๋ฉด ์ํ๊ฐ ๋ณด์กด๋์ง ์๋๊ฑฐ๋ค์!
UI ํธ๋ฆฌ์์ ์์น๊ฐ ๊ฐ์ผ๋ฉด ์ํ๋ฅผ ๋ณด์กดํ๋ค๋ ๊ฒ๊ณผ ๊ด๋ จ๋ ๋งํฌ์ ๋๋ค. https://ko.react.dev/learn/preserving-and-resetting-state#same-component-at-the-same-position-preserves-state - A2. ์ฌ๋ฌ ์๋ฆฌ๋จผํธ๋ฅผ ๊ฐ์ ๋, <>๋ก ํด๋ ๋์ง๋ง, [ ]๋ก ๊ฐ์ธ๋ ๋๋ ๊ฒ ๊ฐ์์. ์์ ์์ ์๋์ฒ๋ผ ์์ ํด๋ณด์๋ฉด ์ดํด๊ฐ ๋์ค ๊ฒ ๊ฐ์์.
<> <PostTitle title={title} /> <PostBody body={body} /> </>์๋์ฒ๋ผ ํด๋ ๋ ๋๋ง์ด ๋ฉ๋๋ค.[ <PostTitletitle=title/>, <PostBodybody=body/> ] - A3. ์ค ์ด๊ฑด ์ฒ์ ์์๋ค์ ์ ๊ธฐํฉ๋๋ค
-
๋ฐ๋ณต์ ํตํด ์ฌ๋ฌ ์๋ฆฌ๋จผํธ๋ฅผ ๋ ๋๋งํ ๋ ๊ฐ ์์์ key๋ฅผ ํ ๋นํด์ผ ํฉ๋๋ค.
- key ํ ๋นํ๋ผ๋ warning์ ์์ฃผ ๋ดค๋๋ฐ Fragment๋ก ๊ฐ์ธ์ค์ผ๊ฒ ๋ค์..!! ๋งจ๋ <>๋ก๋ง ์จ์ ์๊ฐ์ ๋ชปํ๊ณ ์์์ด์