TIL(22)

codedotยท2021๋…„ 7์›” 8์ผ

๐Ÿ’ป Today

1. ์ฝ”๋“œ์Šคํ…Œ์ด์ธ 

  • react

  • Algorithm (7, 8)

  • React Twittler (pair)


2. ํ•™์Šต

  • JSX

  • create react app


3. React

๋ฆฌ์•กํŠธ 3๊ฐ€์ง€ ํŠน์ง•

  1. ์„ ์–ธํ˜•(Declarative) : ํ•œ ํŽ˜์ด์ง€๋ฅผ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด html, css, js ๋กœ ๋‚˜๋ˆ ์„œ ์ ๊ธฐ๋ณด๋‹ค๋Š” ํ•˜๋‚˜์˜ ํŒŒ์ผ์— ๋ช…์‹œ์ ์œผ๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ JSX๋ฅผ ํ™œ์šฉํ•œ ์„ ์–ธํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ง€ํ–ฅ

  2. ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜(component-Based) : ํ•˜๋‚˜์˜ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ์ข…๋ฅ˜์˜ ์ฝ”๋“œ๋ฅผ ๋ฌถ์–ด๋‘” ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐœ๋ฐœํ•œ๋‹ค. ์ปดํฌ๋„ŒํŠธ๋กœ ๋ถ„๋ฆฌํ•˜๋ฉด ์„œ๋กœ ๋…๋ฆฝ์ ์ด๊ณ  ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ๊ธฐ๋Šฅ ์ž์ฒด์— ์ง‘์ค‘ํ•˜์—ฌ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋‹ค.

  3. ๋ฒ”์šฉ์„ฑ(Learn Once, Write Anywhere) : ๋ฆฌ์•กํŠธ๋Š” jsํ”„๋กœ์ ํŠธ ์–ด๋””์—๋“  ์œ ์—ฐํ•˜๊ฒŒ ์ ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค. Facebook์—์„œ ๊ด€๋ฆฌ๋˜์–ด ์•ˆ์ •์ ์ด๊ณ , ๊ฐ€์žฅ ์œ ๋ช…ํ•˜๋ฉฐ, ๋ฆฌ์•กํŠธ ๋„ค์ดํ‹ฐ๋ธŒ๋กœ ๋ชจ๋ฐ”์ผ ๊ฐœ๋ฐœ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.

JSX

๊ทœ์น™

  • opening tag์™€ closing tag๋กœ ๊ฐ์‹ธ์ฃผ์–ด์•ผ ํ•œ๋‹ค.

    // ์˜ฌ๋ฐ”๋ฅธ ํ‘œํ˜„
    <div>
    	<div>
    		<h1>Hello</h1>
    	</div>
    	<div>
    		<h2>Word</h2>
    	</div>
    </div>
    
    //์˜ฌ๋ฐ”๋ฅด์ง€ ๋ชปํ•œ ํ‘œํ˜„
    <div>
    	<h1>Hello</h1>
    </div>
    <div>
    	<h2>Word</h2>
    </div>

  • className ํ‘œ๊ธฐ
<div className= "hello">Hello!</div> // ์˜ฌ๋ฐ”๋ฅธ ํ‘œ๊ธฐ
<div class= "hello">Hello!</div> // X

  • js ํ‘œํ˜„์‹ ์‚ฌ์šฉ์‹œ, ์ค‘๊ด„ํ˜ธ({})์ด์šฉ
function App() {

const name = 'code';

return (
	<div>
		Hello, {name}!
	</div>
);
}

  • ์‚ฌ์šฉ์ž ์ •์˜ ์ปดํฌ๋„ŒํŠธ๋Š” ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘ : JSX๋กœ ์ž‘์„ฑ๋˜๋ฉด "๋Œ€๋ฌธ์ž"๋กœ ์‹œ์ž‘ํ•ด์•ผ ํ•œ๋‹ค.

์†Œ๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•˜๋ฉด html ์—˜๋ฆฌ๋จผํŠธ๋กœ ์ธ์‹ํ•˜๊ธฐ์— ๋Œ€๋ฌธ์ž๋กœ ์ž‘์„ฑ

  • ์กฐ๊ฑด๋ถ€ ๋ Œ๋”๋ง์—๋Š” if๋ฌธ์ด ์•„๋‹Œ ์‚ผํ•ญ์—ฐ์‚ฐ์ž ์ด์šฉ
<div>
	{
	 (1+1 === 2) ? (<p>์ •๋‹ต</p>) : (<p>ํƒˆ๋ฝ</p>)
</div>
    }

  • map()ํ•จ์ˆ˜ ์‚ฌ์šฉ : mapํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ๋ฐ˜๋“œ์‹œ "key" JSX์†์„ฑ์„ ๋„ฃ๋Š”๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๊ฒฝ๊ณ ๊ฐ€ ํ‘œ์‹œ๋จ
function Blog() {
	const content = post.map(post) =>
		<div key= ={post.id}>
			<h3>{post.title}</h3>
			<p>{post.content}</p>
		</div>
);
profile
Loding...

0๊ฐœ์˜ ๋Œ“๊ธ€