01. JSX
1. ๊ฐ๋
: JSX๋????!
XML์ฒ๋ผ ์๊ธด,
JS๋ฅผ ํ์ฅํ ๋ฌธ๋ฒ์ด๋ค.
React์ ๋ถ์ฐ๋ฌผ
๊ผญ React์์๋ง ์ฐ๋ ๊ฒ์ ์๋ Vue JS์์ ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค๋ ์ฌ์ฉํ๋ฉด ๋ ๋ณต์กํ ๊ฒ๋ ๋ง๋ค ์ ์๋ค.
๋ค๋ง React์์ฒด๊ฐ ์๋๊ฐ๋ฉด์ ํ ๋ชธ์ฒ๋ผ ์ฌ๊ฒจ์ง๊ณ ์๋ค.
(VSC๊ฐ ์ํฐ์ ๋ถ์ฐ๋ฌผ์ด์๋ ๊ฒ์ฒ๋ผ)
์ผ์ข ์ Syntax Sugar์
html์ ๊ทธ๋๋ก ์ธ ์ ์๊ณ , JS์ฝ๋์ 1:1๋ก ๋งค์นญ๋๋ค.
2. ์ฌ์ฉํด๋ณด๊ธฐ
https://babeljs.io/repl ์์ ์์๋ก ์ฌ์ฉํด๋ณด๊ธฐ ์ข๋ค.
์ผํธ์์
Presets react
๋ฅผ ์ฒดํฌํ๊ฑฐ๋Add Plugin ์์ react-jsx๋ฅผ ๊ฒ์ํด์
@babel/plugin-transform-react-jsx
๋ฅผ ์ถ๊ฐํ๋ฉด JSX๋ฅผ ์ฌ์ฉํด๋ณผ ์ ์๋ค.++) /* @jsx ์ด์ฉ๊ตฌ~ */ ๋ผ๋ ์ฃผ์์ ์ถ๊ฐํ๋ฉด React.createElement ๋ถ๋ถ์ด ์ด์ฉ๊ตฌ~ํจ์๋ก ๋์ฒด๋๋ค!
Example #1
JSX ์ฝ๋
JS๋ก ๋ณํ
Example #2
JSX ์ฝ๋
JS๋ก ๋ณํ
JSX automatic runtime์ผ๋ก ์ค์ ์ ๋ฐ๊พธ๋ฉด
์ด๋ ๊ฒ ๋ฐ๋๋๋ฐ ์ด๊ฒ์์ JSX์ ๋ฐฉ์์ด๊ธด ํจ
JSX๋ก ์ธ์ ์๋ ๋ชจ๋ ๊ฒ์ JS๋ก ๋ง๋ค์ด์ค์ ์๋ค.
3. VDOM, Virtual Document Object Model
React๋ DOM์ ์ง์ ์ ์ผ๋ก ๋ง๋๋๊ฒ ์๋๋ผ Virtual DOMํธ๋ฆฌ๋ฅผ ๋ง๋๋ ๊ฒ. ์ค์ DOM๊ณผ ์ด VDOM์ ๊ณ์์ ์ผ๋ก ๋น๊ต๋ฅผ ํ๋ฉด์ ๋ค๋ฅธ๊ฒ ์๊ธฐ๋ฉด ๊ทธ ํธ๋ฆฌ๋ง ์๋กญ๊ฒ ๋ ๋๋ง ํจ. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ํจ์จ์ ์ธ ๊ฒ!
์ ์ธ์ api
์ปดํฌ๋ํธ: ์๋ก์ด ํธ๋ฆฌ๋ ธ๋ ๋ฆฌ์กํธ ์๋ฆฌ๋จผํธ ์ฃผ๋ ๊ฒ ๋ฟ์
๊ทธ๋ฅ <> <> ์ด๋ฐ ํ์์ผ๋ก ์ธ ์ ์๋ค.
<-> ์์ ํ api :
React.createElement("div", {className:"sohee"}, "hello world")
key ๋ฅผ ์จ์ฃผ๋ ์ด์
Dom์ ๋น๊ตํ ๋ ์์๋ง ๋ฐ๋์๋๋ฐ ๋ค ๋ฐ๋์๋ค๊ณ ์๊ฐํ๊ณ ๋ค ๋ฆฌ๋ ๋๋งํ๋ ๋ถ์์ฌ๋ฅผ ๋ง๊ธฐ ์ํด
Last updated