JSX
1. JSX๋?
React์์ UI๋ฅผ ๊ตฌ์ฑํ ๋ ์ฌ์ฉํ๋ JavaScript๋ฅผ ํ์ฅํ ๋ฌธ๋ฒ์ด๋ฉฐ, ์ด๋ฅผ ํ์ฉํด React element๋ฅผ ๋ง๋ค ์ ์์
'Babel'๋ก JSX๋ฅผ ๋ธ๋ผ์ฐ์ ๊ฐ ์ดํดํ ์ ์๋ JavaScript๋ก compile -> JavaScript๋ฅผ ๋ธ๋ผ์ฐ์ ๊ฐ ์ฝ๊ณ ํ๋ฉด์ ๋ ๋๋ง ๊ฐ๋ฅ
React์์๋ DOM๊ณผ๋ ๋ค๋ฅด๊ฒ CSS, JSX ๋ฌธ๋ฒ๋ง์ผ๋ก ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ๊ฐ๋ฅ. ์ฆ, JavaScript๋ง์ผ๋ก ๋งํฌ์ ํํ์ ์ฝ๋๋ฅผ ์์ฑํ์ฌ DOM์ ๋ฐฐ์น ๊ฐ๋ฅ (๋จ, JSX๋ HTML์ด ์๋๊ธฐ์ Babel๋ก compile ํ์)
2. JSX ๋ฌธ๋ฒ
ํ๋์ ์๋ฆฌ๋จผํธ ์์ ๋ชจ๋ ์๋ฆฌ๋จผํธ๊ฐ ํฌํจ. ์ต์์์์ opening tag์ closing tag๋ก ๊ฐ์ธ์ฃผ์ด์ผ ํจ
<div> <div> <h1>Hello</h1> </div> <div> <h2>World</h2> </div> </div>
์๋ฆฌ๋จผํธ ํด๋์ค ์ฌ์ฉ ์, className์ผ๋ก ํ๊ธฐ
<div className = "greeting">Hello</div>
JavaScript ํํ์ ์ฌ์ฉ ์, ์ค๊ดํธ ์ด์ฉ
function App () { const name = 'Ella Choi'; return ( <div> Hello, {name}! </div> ); }
์ฌ์ฉ์ ์ ์ ์ปดํฌ๋ํธ๋ ๋๋ฌธ์๋ก ์์
function Hello() { return <div>Hello!</div> } function HelloWorld() { return <Hello />; }
์กฐ๊ฑด๋ถ ๋ ๋๋ง์๋ if๋ฌธ์ด ์๋, ์ผํญ์ฐ์ฐ์ ์ฌ์ฉ
<div> { (1+1 === 2) ? (<p>์ ๋ต</p>) : <p>ํ๋ฝ</p>) } </div>
์ฌ๋ฌ ๊ฐ์ HTML ์๋ฆฌ๋จผํธ๋ฅผ ํ์ํ ๋, map()ํจ์ ์ฌ์ฉํ๋ฉฐ, ๋ฐ๋์ 'key'JSX ์์ฑ์ ๋ฃ์ด์ผ ํจ.
const posts = [ {id: 1, title: 'Hello World', content: 'Welcome to learning React!'}, {id: 2, title: 'Installation', content: 'You can install React from npm'} ]; function Blog() { const content = posts.map((post) => <div key = {post.id}> <h3>{post.title}</h3> <p>{post.content}</p> </div> ); return ( <div> {content} </div> ); }
๋ฐฐ์ด์ ๊ฐ ์์๋ ๊ฐ๊ฐ ๋ณ์์ ๋ด๊ธธ ์ ์๋ ํ๋์ JSX ํํ์์.
const Hello - () => { return ( [<div>์๋ ํ์ธ์</div>, <div>๋ฐ๊ฐ์ต๋๋ค</div>] ) }
Last updated