๐ป DEV/React5 [React] React ์ ์๋ช ์ฃผ๊ธฐ(Life Cycle) ๋? โจ Life Cycle ์ด๋? ์ปดํฌ๋ํธ๊ฐ ๋ธ๋ผ์ฐ์ ์์ ๋ํ๋๊ณ (Mount), ์ ๋ฐ์ดํธ ๋๊ณ (Update), ์ฌ๋ผ์ง๋ ์ผ๋ จ์ ๊ณผ์ ์ ์นญํ๋ค. ์ด๋ฌํ ๊ณผ์ ์์ ํธ์ถ๋๋ ๋ฉ์๋๋ฅผ Life Cycle Method ๋ผ๊ณ ๋ถ๋ฅด๋ฉฐ, ํด๋์คํ ์ปดํฌ๋ํธ์์๋ง ์ฌ์ฉํ ์ ์๋ค. (ํจ์ํ ์ปดํฌ๋ํธ๋ React 16.8 ๋ฒ์ ๋ถํฐ ๋์ ๋์์ผ๋ฉฐ, ํ์ฌ๋ useState ๋ useEffect๋ก ๋์ฑ ๋ง์ด ํ์ฉ๋๋ค) ๊ฐ ๋จ๊ณ๋ณ๋ก ํธ์ถ๋๋ ๋ฉ์๋์ ์์์ ์ข ๋ฅ๊ฐ ๋ค๋ฅด๋ค. โจ 1. Mount : DOM ์ ์๋ฆฌ๋จผํธ๋ฅผ ๋ฃ๋ ์์ constructor: ์ปดํฌ๋ํธ ํด๋์ค์ ์์ฑ์ ํจ์์ด์, ์ปดํฌ๋ํธ๊ฐ ์์ฑ๋ ๋ ํธ์ถ๋๋ ํจ์์ด๋ค. State์ ๋ค๋ฅธ ๊ฐ๋ค์ ์ด๊ธฐ๊ฐ์ ์ง์ ํ ๋ ์ฌ์ฉํ๋ค. ๋ํ, props ๋ฅผ ๋งค๊ฐ๋ณ์๋ก ๋ฐ๊ณ , super(pro.. 2021. 5. 27. [React] React ์์ ์ด๋ฏธ์ง(Image) ์ฒจ๋ถํ๊ธฐ โจ Img tag ๋? ์ด๋ฏธ์ง๋ฅผ ๋ถ๋ฌ์ฌ ์ ์๋ HTML ํ๊ทธ๋ฅผ ์๋ฏธํ๋ฉฐ, DOM์ ํตํด์๋ ์๋ ๊ฐ๋ฅํ๋ค. React ์์์ img ํ๊ทธ๋ ๊ธฐ๋ณธ์ ์ผ๋ก HTML ํ๊ทธ์ ๋์ผํ attribute ๋ฅผ ๊ฐ์ง๋ฉฐ, class ๋ง className (๋ฆฌ์กํธ ๋ฌธ๋ฒ) ์ผ๋ก ๋ณ๊ฒฝํ์ฌ ์ง์ ํด์ฃผ๋ฉด ๋๋ค. โจ React ์์ ์ด๋ฏธ์ง ๋ถ๋ฌ์ค๊ธฐ: ์น url ์ ํตํด ์ด๋ฏธ์ง๋ฅผ ๋ถ๋ฌ์ค๊ณ ์ ํ๋ค๋ฉด src='###' ์์ url ์ ๋ฌธ์์ด๋ก ์์ฑํด์ฃผ๋ฉด ๋๋ค. ๋ก์ปฌ ๋๋ ํ ๋ฆฌ์ ์ ์ฅ๋์ด ์๋ ์ด๋ฏธ์ง๋ฅผ ๋ถ๋ฌ์ค๊ธฐ ์ํ ๋ฐฉ๋ฒ์ผ๋ก๋ ๋ ๊ฐ์ง๊ฐ ์๋ค. 1. React App ์ Public ํด๋ ๋ด์์ ๋ถ๋ฌ์ค๋ ๋ฐฉ๋ฒ 2. ์๋ ๊ฒฝ๋ก์ import๋ฌธ์ ํ์ฉํ์ฌ ๋ถ๋ฌ์ค๋ ๋ฐฉ๋ฒ โจ 1. Public ํด๋ ๋ด์์ ๋ถ๋ฌ์ค๊ธฐ React App ์ต์ด ์์ฑ ์ .. 2021. 5. 9. [React] React ์ ์ํ (State) ์ ์ดํํธ ํ (Effect Hook) โจ State ๋? ์ปดํฌ๋ํธ ๋ด์์ ๋์ ์ผ๋ก ๋ณ๊ฒฝ๋๋ ๊ฐ์ด๋ค. โจ State ์ ํน์ง์? ์ปดํฌ๋ํธ ๋ด๋ถ์์ ์ ์ด(๊ด๋ฆฌ)๋๋ค. State ์ ๋ฐ์ดํธ๋ ๋น๋๊ธฐ์ (Asynchronous)์ด๋ค. DOM ์ State ๊ฐ ๋ณ๊ฒฝ๋ ๋๋ง๋ค re-rendering ๋์ง ์์ผ๋ฉฐ, ์ฌ๋ฌ ์ฐจ๋ก์ setState ๊ฐ ์๋ค๋ฉด ์ ๋ถ ํตํฉํ์ฌ ํ ๋ฒ์ re-rendering ํ๋ค. State ๋ฅผ props ๋ก ์์ ์ปดํฌ๋ํธ์ ์ ๋ฌํ ์ ์๋ค. (์บก์ํ ๋์๊ธฐ ๋๋ฌธ์ด๋ค.) โจ State ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์? ํจ์ํ ์ปดํฌ๋ํธ์์๋ useState ๋ผ๋ ํ (Hook)์ ํตํด ์ฌ์ฉํ ์ ์๋ค. useState ๋ฅผ ํ์ฉํ์ฌ state ์ ์ด๊ธฐ๊ฐ์ ์ง์ ํด์ค ์ ์์ผ๋ฉฐ, ์ด๊ธฐ๊ฐ์ ์ด๋ ํ ์๋ฃํ์ด๋ ๋ ์ ์๋ค. (๋ฌธ์์ด, ๋ฐฐ์ด, ๊ฐ์ฒด ๋ฑ) se.. 2021. 5. 9. [React] React.Fragment ๋? โจ React Fragment ์ ๊ธฐ๋ณธ ๊ธฐ๋ฅ ์ปดํฌ๋ํธ์ ๋ฆฌํด๋ฌธ ๋ด๋ถ์์ ๋ณ๋์ ๋ ธ๋๋ฅผ ์ถ๊ฐํ์ง ์๊ณ ์ฌ๋ฌ ์๋ฆฌ๋จผํธ๋ฅผ ๊ทธ๋ฃนํํ ์ ์๋๋ก ํ๋ค. const Component = () => { return ( ) } โจ Fragment ์ ํน์ง์? Key ๋ฅผ ์ ๋ฌํ ํ์๊ฐ ์๋ ๊ฒฝ์ฐ ๋น ํ๊ทธ์ฒ๋ผ ์ฌ์ฉํ ์ ์๋ค. Key ๊ฐ ์๋ค๋ฉด ๋ฅผ ๋ช ์ํด์ฃผ์ด์ผ ํ๋ค. ์๋ฆฌ๋จผํธ๊ฐ ๋๋ฌด ๋ง์์ง ๋๋ ์ต์๋จ๊ณผ ํ๋จ์ Fragments์ ์ถ๊ฐํด ๊ทธ๋ฃนํ ํ๋ ๋ฐฉ๋ฒ์ ํ์ฉํ ์ ์๋ค. const Component = () => { return ( // Key ๊ฐ ์๋ ๊ฒฝ์ฐ ) } Fragment ์ ์ฅ์ ์? React ๋ฌธ๋ฒ ํน์ฑ์ ํ๋์ ์ปดํฌ๋ํธ ๋น ํ๋์ ์๋ฆฌ๋จผํธ๋ง ๋ฐํํ ์ ์๊ธฐ์, ๋ฐํ๋ฌธ์ div ๋ ์ฌํ ํ๊ทธ๋ก ์ ์ฒด ์๋ฆฌ๋จผํธ.. 2021. 5. 9. [React] ๋ฆฌ์คํธ์ Key โจ React ์์ Key๋? ์๋ฆฌ๋จผํธ ๋ฆฌ์คํธ๋ฅผ ๋ง๋ค ๋ ํฌํจํด์ผ ํ๋ ํน์ํ ๋ฌธ์์ด ์ดํธ๋ฆฌ๋ทฐํธ์ด๋ค. React๊ฐ ์ด๋ค ํญ๋ชฉ์ ๋ณ๊ฒฝ, ์ถ๊ฐ ๋๋ ์ญ์ ํ ์ง ์๋ณํ๋ ๊ฒ์ ๋๋๋ค. function NumberList(props) { return ( 1 2 3 ) } Key ์ ํน์ง์? ๊ณ ์ ํ ๊ฐ์ด์ด์ผ ํ๋ฉฐ, ํ์ ๋ ธ๋์ธ ๋ค๋ฅธ ์์ดํ ๊ณผ์ ์ค๋ณต๋ ํค ๊ฐ์ ํ์ฉ๋์ง ์๋๋ค. ๋ํ, ์ปดํฌ๋ํธ์ ๊ตฌ์ฑ์์๋ก ์ ๋ฌ๋์ง ์๋๋ค. (๋ฐ๋ผ์ props ์ key ๊ฐ ํฌํจ๋์๋ค ํด๋ props.key ๋ก ์ฌ์ฉ ๋ถ๊ฐํ๋ค) ์ฃผ์ํ ์ ์ปดํฌ๋ํธ ํ๋๋ฅผ ์ฌ๋ฌ ์ฐจ๋ก ๋ฐ๋ณตํด์ ๋์ดํ ๊ฒฝ์ฐ ์ปดํฌ๋ํธ ์์ฒด๊ฐ ํ๋์ list ๊ฐ ๋๋ค. ์ด ๊ฒฝ์ฐ, ์ปดํฌ๋ํธ ์์ฒด์ key ๊ฐ์ ๋ณ๊ฒฝํด์ฃผ์ด์ผ ํ๋ค. function ListItem(props) { .. 2021. 5. 9. ์ด์ 1 ๋ค์