๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ’ปWEB FrontEnd/ํ”„๋ ˆ์ž„์›Œํฌ React

React ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ + JSX๋ฌธ๋ฒ•

React ์„ค์น˜·์‹คํ–‰

์ผ๋ฐ˜์ ์œผ๋กœ create react app์ด๋ผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•ด์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š”๊ฒŒ ์ผ๋ฐ˜์ ์ด๋‹ค. 

 

1) ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

reactํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•  ํด๋”์— ๋‹ค์Œ ๋ช…๋ น์–ด ์ž…๋ ฅํ•œ๋‹ค.

npx create-react-app blog

 

2) ์ƒ์„ฑ๋œ ํ”„๋กœ์ ํŠธ ๋ฏธ๋ฆฌ๋ณด๊ธฐ

๋ฏธ๋ฆฌ๋ณด๊ธฐ ์‹คํ–‰ํ•˜๋ ค๋ฉด terminal์— ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•œ๋‹ค.

npm start
//localhost:3000

 

JSX

1) JSX(JavaScript XML)๋ž€? 

- JSX๋Š” Javascript์— XML์„ ์ถ”๊ฐ€ํ•œ ํ™•์žฅํ•œ ๋ฌธ๋ฒ•์ด๋‹ค.
 - JSX๋Š” ๋ฆฌ์•กํŠธ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฐœ๋ฐœํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋ฏ€๋กœ ๊ณต์‹์ ์ธ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฌธ๋ฒ•์€ ์•„๋‹ˆ๋‹ค.
 - ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— ๋ฐ”๋ฒจ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ผ๋ฐ˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ˜•ํƒœ์˜ ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜๋œ๋‹ค.

// ์‹ค์ œ ์ž‘์„ฑํ•  JSX ์˜ˆ์‹œ
function App() {
	return (
      <h1>HelloWorld</h1>
    );
}

// ์œ„์™€ ๊ฐ™์ด ์ž‘์„ฑํ•˜๋ฉด, ๋ฐ”๋ฒจ์ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ํ•ด์„ํ•˜์—ฌ ์ค€๋‹ค.
function App() {
	return React.createElement("h1", null, "HelloWorld");
}

 - JSX๋Š” ํ•˜๋‚˜์˜ ํŒŒ์ผ์— ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์™€ HTML์„ ๋™์‹œ์— ์ž‘์„ฑํ•˜์—ฌ ํŽธ๋ฆฌํ•˜๋‹ค.
 - ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ HTML์„ ์ž‘์„ฑํ•˜๋“ฏ์ด ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€๋…์„ฑ์ด ๋†’๊ณ  ์ž‘์„ฑํ•˜๊ธฐ ์‰ฝ๋‹ค.(์ฃผ๊ด€์ ์ธ ๊ด€์ )

 

2) JSX ๋ฌธ๋ฒ•

- class ๋„ฃ์„ ๋• className

- ๋ณ€์ˆ˜ ๋„ฃ์„ ๋• {์ค‘๊ด„ํ˜ธ}