Section 1์ ๋ง์ง๋ง ๊ณผ์ React์ ๋ค์ด๊ฐ์ต๋๋ค.
ํ๋ก๊ทธ๋๋ฐ ๊ฒฝํ ์์ผ์ ๋ถ๋ค์ด ๋๋ถ๋ถ ๊ณ ์ฐจํจ์๋ React๋ถ๋ถ ์ด๋ ต๋ค๊ณ ํ์ จ๋๋ฐ, ์ ๋ง React๋ ์ด๋ ค์ ์ด์...
์ต์ํด์ง๋ฉด ์คํ๋ ค HTML CSS DOM ๋ฐ๋ก ์ฌ์ฉํ๋ ๊ฒ๋ณด๋ค ํจ์ฌ ํธํ ๊ฒ ๊ฐ์๋ฐ ์์ง์ ์์ ์์ต๋ค์ใ ใ ใ
๋ณต์ต ๋ง์ ์ด์ฌํ ํด์ผํ ๊ฒ ๊ฐ์ต๋๋ค!
๋ฆฌ์ํธ (React)
React๋ ํ๋ก ํธ์ค๋ ๊ฐ๋ฐ์ ์ํ JavaScript ์คํ์์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค.
ํฌ๊ฒ 3๊ฐ์ง ํน์ง์ด ์์ต๋๋ค.
1. ์ ์ธํ: JSX๋ฅผ ํ์ฉํด์ ์ ์ธํ ํ๋ก๊ทธ๋๋ฐ์ ์งํฅํฉ๋๋ค. HTML CSS JS๋ก ๋๋ ์ ๋ ๊ฒ๊ณผ ๋ฌ๋ฆฌ ํ๋์ ํ์ผ์ ๋ช ์์ ์ผ๋ก ์์ฑํ ์ ์๋ ์ฅ์ ์ด ์์ต๋๋ค.
2. ์ปดํฌ๋ํธ ๊ธฐ๋ฐ: ์ปดํฌ๋ํธ๋ก ๋ถ๋ฆฌํ๋ฉด ์๋ก ๋ ๋ฆฝ์ ์ด๊ณ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์, ๊ธฐ๋ฅ ์์ฒด์ ์ง์คํ์ฌ ๊ฐ๋ฐํ ์ ์์ต๋๋ค.
3. ๋ฒ์ฉ์ฑ: React๋ JavaScript ํ๋ก์ ํธ ์ด๋์๋ ์ ์ฐ์ ์ผ๋ก ์ ์ฉํ ์ ์์ต๋๋ค.
๊ทธ๋ผ '1. ์ ์ธํ'์์ ์ธ๊ธํ JSX๋ ๋ฌด์์ผ๊น์?
JSX๋ JavaScript XML์ ์ค์๋ง๋ก React์์ UI๋ฅผ ๊ตฌ์ฑํ ๋ ์ฌ์ฉํ๋ ๋ฌธ๋ฒ์ ๋๋ค.
JavaScript๋ฅผ ํ์ฅํ ๋ฌธ๋ฒ๋ฅผ ์ฌ์ฉํจ์ผ๋ก์จ ์ฝ๋์ ๋ณต์ก์ฑ์ ์ค์ด๊ณ , Element๋ฅผ ์ดํดํ๊ธฐ ์ฝ๊ฒ ๋ง๋ค ์ ์์ต๋๋ค.
Babel์ JSX๋ฅผ ๋ธ๋ผ์ฐ์ ๊ฐ ์ดํดํ ์ ์๋ JavaScript๋ก ์ปดํ์ผํฉ๋๋ค.
์ปดํ์ผ ํ, JavaScript๋ฅผ ๋ธ๋ผ์ฐ์ ๊ฐ ์ฝ๊ณ ํ๋ฉด์ ๋ ๋๋งํ ์ ์์ต๋๋ค
'2. ์ปดํฌ๋ํธ ๊ธฐ๋ฐ'์์์ ์ปดํฌ๋ํธ๋ ๋ฌด์์ผ๊น์?
๊ตฌ์กฐ์ ๋์์ ๋ํ ์ฝ๋๋ฅผ ํ ๋ญ์น๋ก ์ ์ ์ฝ๋์ ์ ๋งํฉ๋๋ค.
๊ฐ์ ๋ค๋ฅธ ๊ธฐ๋ฅ์ ๊ฐ๊ณ ์๊ธฐ ๋๋ฌธ์ ์ด๋ฌํ ์ปดํฌ๋ํธ๋ฅผ ํ ๊ณณ์ ๋ชจ์ ๋ณต์กํ UI๋ ์ฝ๊ฒ ๊ตฌ์ฑํ ์ ์๋ค๊ณ ํฉ๋๋ค!
์ด๋ฒ์๋ JSX๋ฅผ ์ด๋ป๊ฒ ํ์ฉํ ์ ์๋์ง์ ๋ํด ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
HTML์ด๋ CSS์์ ์ฐจ์ด์ ์ ์์ฃผ๋ก ๊ณต๋ถํ๋ฉด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค!
1. ํ๋์ ์๋ฆฌ๋จผํธ ์์ ๋ชจ๋ ์๋ฆฌ๋จผํธ๋ฅผ ํฌํจ์์ผ์ค์ผ ํฉ๋๋ค.
๊ทธ๋์ <div></div>๋ก ๋ด์ฉ์ ๋ถ๋ฆฌํด์คฌ๋ค๊ณ ๋ค ๋๋ ๊ฒ์ด ์๋๋ผ ๊ทธ ์๋ฆฌ๋จผํธ๋ค์ ๋ชจ๋ ๋ฌถ์ด์ฃผ์ด์ผ ํฉ๋๋ค.
2. ์๋ฆฌ๋จผํธ์ class ์ฌ์ฉ์ className์ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
๋ํ ์ฃผ์ํ ์ ์ด ๋์์ธ ๋ถ์์ ์ ํ์ ํ ์ ์๋๋ก className์ ์ ์ง์ด์ค์ผ ํ๋ค๊ณ ํฉ๋๋ค!
3. JavaScript ํํ์์ ์ฌ์ฉํด์ค ๋ ์ค๊ดํธ๋ฅผ ์ด์ฉํด์ ํ ์คํธ์ ๊ตฌ๋ถํด์ค๋๋ค.
4. ์ฌ์ฉ์๊ฐ ์ ์ํ๋ ์ปดํฌ๋ํธ ์ด๋ฆ์ ๋๋ฌธ์๋ก ์์ํด์ผ ํฉ๋๋ค.
5. ์กฐ๊ฑด๋ถ ๋ ๋๋ง์๋ ์ผํญ์ฐ์ฐ์ ์ฌ์ฉ์ ์ถ์ฒํฉ๋๋ค.
6. ์ฌ๋ฌ ๊ฐ์ ์๋ฆฌ๋จผํธ๋ฅผ ํ์ํ ๋, map ํจ์๋ฅผ ์ด์ฉํ๋ค๊ณ ํฉ๋๋ค.
์๋ก ๋ฐฐ์ด ๋ด์ฉ
๊ตฌ์กฐ๋ถํดํ ๋น?
'๋ถํด(destructuring)'๋ 'ํ๊ดด(destructive)'๋ฅผ ์๋ฏธํ์ง ์์ต๋๋ค.
๊ตฌ์กฐ ๋ถํด ํ ๋น์ด๋ ๋ช ์นญ์ ์ด๋ค ๊ฒ์ ๋ณต์ฌํ ์ดํ์ ๋ณ์๋ก '๋ถํด(destructurize)'ํด์ค๋ค๋ ์๋ฏธ ๋๋ฌธ์ ๋ถ์ฌ์ก์ต๋๋ค.
props์ states๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๋ ๊ธฐ๋ฅ ์์.
๋์ ์ธ์ง ์ ์ ์ธ์ง์ ๋ฐ๋ผ ์ฌ์ฉ ๋ฌ๋ผ์ง.
props๋ ๋ถ๋ชจ ์ปดํฌ๋ํธ์์ ๊ฐ์ ธ์ค๊ธฐ ์ํด ์ฌ์ฉ
๋๋ํด๋ฝ
์ปค๋ฆฌ์ด์คํฌ, ์๋ฒฝํ ๊ณต๋ถ๋ฒ ์ด๋ผ๋ ์ฑ ์์๋ณด๊ธฐ
๋ฒ์์ ์ด๊ฒจ๋ด๊ธฐ
๋ธ๋ก๊ทธ ๋งค์ฐ ์ค์
์ผ๋จ ํ๋ค๋ณด๋ฉด ์ข์ํ๋ ์ผ๋ค์ด ์๊น
'TIL > JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
TIL 20: React ๊ธฐ์ด - State & Props (0) | 2021.08.13 |
---|---|
TIL 19: React ๊ธฐ์ด - SPA (0) | 2021.08.12 |
TIL 17: ๊ณ ์ฐจํจ์ (0) | 2021.08.11 |
TIL 16: ์ ํจ์ฑ ๊ฒ์ฌ, ์ด๋ฒคํธ ๊ฐ์ฒด (0) | 2021.08.09 |
TIL 15: Spread, Rest ๋ฌธ๋ฒ, DOM (0) | 2021.08.06 |