JSX
ํ์ต ํค์๋
JSX
๋?Syntactic sugar
React์์ JSX๋ฅผ ์ฌ์ฉํ๋ ๋ชฉ์
React.createElement
React Element
JSX
๐ JSX๋ ๋ฌด์์ธ๊ฐ?
JSX is an XML-like syntax extension to ECMAScript
JavaScript์ XML์ ์ถ๊ฐํ์ฌ ํ์ฅ๋ ๋ฌธ๋ฒ
JavaScript XML์ ์ค์๋ง
๊ณต์์ ์ธ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฌธ๋ฒ์ ์๋๋ค.
JSX ํ๋์ ํ์ผ์ ์๋ฐ์คํฌ๋ฆฝํธ์ HTML์ ๋์์ ์์ฑ ํ ์ ์๋ค.
React์์๋ง ์ฌ์ฉ๋๋๊ฒ ์๋๋ฉฐ, Vue.js๋ฑ ๋ค๋ฅธ ํ๋ ์์ํฌ์์๋ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.
๐ Syntactic sugar๋ ๋ฌด์์ธ๊ฐ?
๋ฌธ๋ฒ์ ์ธ ์คํ
ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ์ฐจ์์์ ์ ๊ณต๋๋ ๋ ผ๋ฆฌ์ ์ผ๋ก ๊ฐ๊ฒฐํ๊ฒ ํํํ๋ ๊ฒ
์ง๊ด์ ์ด์ง๋ ์์ง๋ง ์ฝ๋์ ์์ ์ค์ฌ์ฃผ๋ ๊ฒ๋ค์ Syntactic sugar ๋ผ๊ณ ๋ถ๋ฅธ๋ค.
ES2015์์๋ ์ฌ๋ฌ๊ฐ์ง Syntactic sugar๊ฐ ์ถ๊ฐ ๋์๋ค๊ณ ํ๊ฐ ๋๋ค. ์๋ก Class, ๊ฐ์ฒด๋ถํด, spread(...)
๐ React์์ JSX๋ฅผ ์ฌ์ฉํ๋ ๋ชฉ์
JSX๋ React.createElement(component, props, ...children)ํจ์๋ฅผ ํธ์ถํ๊ธฐ ์ํ Syntactic sugar๋ก์ ์ญํ ์ ํ๋ค.
React์์ JSX ์ฌ์ฉ์ด ํ์๋ ์๋๋ฉฐ ๋น๋ ํ๊ฒฝ์์ ์ปดํ์ผ ์ค์ ์ ํ๊ณ ์ถ์ง ์์ ๋ JSX ์์ด React๋ฅผ ์ฌ์ฉํ๋ฉด ํธ๋ฆฌํ๋ค.
JSX๋ก ํ ์ ์๋ ๋ชจ๋ ๊ฒ์ ์์ JavaScript๋ก๋ ํ ์ ์๋ค.
๐ค JSX ์ด๋ป๊ฒ ์ฌ์ฉํ๋๊ฐ? (feat.๊ธฐ๋ณธ ๊ท์น)
JavaScript ํํ์๋ง์
{}
์ค๊ดํธ ์์ ๋ฃ์ด์ ์ฌ์ฉ ํ ์ ์๋ค.ํ๊ทธ๊ฐ ๊ผญ ๋ซํ์ผ ํ๋ค.
1๊ฐ์ ์ต์์์ ํ๊ทธ๊ฐ ์กด์ฌํด์ผํ๋ค.
<></> ,
React.Fragement
๐ React.createElement (JSX ์์ด ์ฌ์ฉํ๋ React)
JSX๋ ๋ธ๋ผ์ฐ์ ์์ ์คํํ๊ธฐ ์ํด์ ์ผ๋ฐ์ ์ธ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ก ๋ณํํด์ผ ํ๋ค.
JSX โ JavaScript ์ฝ๋๋ก Babel์ ํตํด ๋ณํ ํ์ ์ React.createElement ๋ฅผ ํตํด
React Element
๋ฅผ ์์ฑ ํ ์ ์๋ค.
Example #1
Example #2
Example #3
๐ ์ฐธ๊ณ
Last updated