[React] React ๊ธฐ๋ณธ - JSX ๋ฌธ๋ฒ
JSX ๋ฌธ๋ฒ์ด๋?
๋ฆฌ์กํธ์์ ์๊น์๋ฅผ ์ ์ํ ๋, ์ฌ์ฉํ๋ ๋ฌธ๋ฒ์ด๋ค. HTML๊ณผ ์ ์ฌํ๊ฒ ์๊ฒผ์ง๋ง ์ค์ ๋ก๋ JavaScript์ด๋ค!
const App = () => {
return <div>Hello React!</div>
}
์ค์ JavaScript๊ฐ ์๋๋ฐ ๋ธ๋ผ์ฐ์ ๊ฐ ์ด๋ป๊ฒ ์ฝ๋๋ฅผ ํด์ํ๋ ๊ฑธ๊น?
์ฌ๊ธฐ์ Babel์ ๋ํด ์์๋ณด์.
Babel์ JSX๋ฅผ ๋ธ๋ผ์ฐ์ ๊ฐ ์ดํดํ ์ ์๋๋ก JavaScript๋ก ๋ณํํด์ค๋ค.
๊ทธ๋ฌ๋ JSX๊ฐ JavaScript๋ก ์ค๋ฅ ์์ด ์ ๋๋ก ๋ณํ๋๋ ค๋ฉด ๊ท์น์ ์ง์ผ์ผ ํ๋ค.
1. ํ๊ทธ๋ ๊ผญ ๋ซํ ์์ด์ผ ํ๋ค.
const App = () => {
return (
<div>
<h1>Hello</h1>
<br>
<input>
</div>
)
}
<br> , <input> ๋ฑ ๋ณธ๋ HTML์์ ๋ซํ์๋ ํ๊ทธ๋ JSX์์ ๋ซ๋ ํ๊ทธ๊ฐ ์๋๋ค!
๋น์ฐํ ํ๊ทธ ์ง์ด ๋ง์ง ์์๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค ( div์ ๋ซ๋ ํ๊ทธ๊ฐ ์๋ ๊ฒฝ์ฐ ๋ฑ๋ฑ.. )
const App = () => {
return (
<div>
<h1>Hello</h1>
<br />
<input />
</div>
)
}
์์ ๊ฐ์ด ์์ฑํด์ค์ผ ํ๋ค.
2. ํ๊ทธ๋ ๊ฐ์ธ์ ธ์ผ ํ๋ค!
const App = () => {
return (
<div>
<h1>Hello</h1>
</div>
<div>
<h1>Bye</h1>
</div>
)
}
์๋ง ์ ์ฝ๋๋ ์ค๋ฅ๋ฅผ ์ผ์ผํฌ ๊ฒ์ด๋ค.
๋ ๊ฐ์ ํ๊ทธ๊ฐ ํ์ ์์น์ ์์ ๋ ํด๋น ์ปดํฌ๋ํธ๋ ์ต์๋จ์ ํ๋์ ํ๊ทธ๋ก ๊ฐ์ธ์ ธ ์์ด์ผ ํ๋ค.
const App = () => {
return (
<>
<div>
<h1>Hello</h1>
</div>
<div>
<h1>Bye</h1>
</div>
</>
)
}
<div>, <main>, <article> ๋ฑ๋ ๋น์ฐํ ๋๋ฉฐ, ๋น ํ๊ทธ๋ก๋ ๋์ํ๋ ์ฐธ๊ณ ํ์.
3. ๋ด๋ถ์ JavaScript ๊ฐ์ ์ฌ์ฉํ ๋ ์ค๊ดํธ๋ก ๋ฌถ์ด์ฃผ์!
const App = () => {
const value = "Hello";
return (
<>
<div>
<h1>{value}</h1>
</div>
<div>
<h1>Bye</h1>
</div>
</>
)
}
return ๋ด๋ถ์์ JavaScript๊ฐ์ ์ฌ์ฉํ ๋ {}๋ก ๊ผญ ๋ฌถ์ด์ฃผ์!
4. html๊ณผ ์กฐ๊ธ ๋ค๋ฅธ ๋ฌธ๋ฒ
const App = () => {
return <div class="hi">Hello React!</div>
}
์ฐ๋ฆฌ์๊ฒ ์ต์ํ ์ ์ฝ๋๋ ์ฝ์์์ "ํน์ HTML์ ์์ฑ์ค์ด์ ๊ฐ์?" ๋ผ๋ฉฐ ์ค๋ฅ๋ฅผ ์ผ์ผํฌ ๊ฒ์ด๋ค.
JSX ๋ฌธ๋ฒ์์ class๋ className์ผ๋ก ์ฌ์ฉํด์ผํ๋ค!
์ฐธ๊ณ ๋ก input์ ์ ์ฉํ๋ label ํ๊ทธ๋ฅผ ์ฌ์ฉํ ๋ for ์์ฑ๋ htmlFor๋ก ์ฌ์ฉํด์ผํ๋ค!