๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
WEB/REACT

[React] JSX

by mingzoo 2020. 12. 23.

โ—์•„๋ž˜ ๋‚ด์šฉ์€ [๋ฆฌ์•กํŠธ๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ธฐ์ˆ ] ์ฑ…์—์„œ ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ์š”์•ฝํ•˜์˜€์Šต๋‹ˆ๋‹ค.

 

JSX๋ž€

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ํ™•์žฅ๋ฌธ๋ฒ•์ด๋ฉฐ, XML๊ณผ ๋งค์šฐ ๋น„์Šทํ•˜๊ฒŒ ์ƒ๊น€

JSX๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด,,,

  • ํŽธํ•˜๊ฒŒ ๋ Œ๋”๋ง ๊ฐ€๋Šฅ
  • HTML์ฝ”๋“œ์™€ ์œ ์‚ฌํ•ด์„œ ๋ณด๊ธฐ ์‰ฝ๊ณ , ์ต์ˆ™
  • ์ปดํฌ๋„ŒํŠธ๋ฅผ HTMLํƒœ๊ทธ ์“ฐ๋“ฏ์ด ์‚ฌ์šฉํ•˜๋ฉด์„œ ํ™œ์šฉ๋„๊ฐ€ ๋†’์Œ

์˜ˆ์‹œ)

import React from 'react';

function App(){
	return(
          <div>
            <h1>๋ฆฌ์•กํŠธ ์•ˆ๋…•!<h1>
            <h2>์ž˜ ์ž‘๋™ํ•˜๋‹ˆ?<h2>
          <div/>
     );
 }
 export default App;

 

์œ„์˜ ์ฝ”๋“œ์ฒ˜๋Ÿผ h1ํƒœ๊ทธ์™€ h2ํƒœ๊ทธ๊ฐ€ divํƒœ๊ทธ ํ•˜๋‚˜๋กœ ๊ฐ์‹ธ์ ธ์žˆ๋‹ค.

์ด๋ ‡๊ฒŒ ๋ฆฌ์•กํŠธ ์ปดํฌ๋„ŒํŠธ์—์„œ ์š”์†Œ ์—ฌ๋Ÿฌ ๊ฐœ๋ฅผ ํ•˜๋‚˜์˜ ์š”์†Œ๋กœ ๊ฐ์‹ธ๋Š” ์ด์œ ?

์ปดํฌ๋„ŒํŠธ ๋‚ด๋ถ€๋Š” ํ•˜๋‚˜์˜ DOM ํŠธ๋ฆฌ ๊ตฌ์กฐ๋กœ ์ด๋ฃจ์–ด์ ธ์•ผ ํ•œ๋‹ค๋Š” ๊ทœ์น™์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ

 

์กฐ๊ฑด๋ถ€ ์—ฐ์‚ฐ์ž

JSX ๋‚ด๋ถ€์˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ‘œํ˜„์‹์—์„œ๋Š” if๋ฌธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.

 

//=== ์กฐ๊ฑด๋ถ€ ์—ฐ์‚ฐ์ž ์‚ฌ์šฉ
import React from 'react';

function App(){
	const name = '๋ฆฌ์•กํŠธ';
    return (
    	<div>
        	{name==='๋ฆฌ์•กํŠธ' ? (<h1>๋ฆฌ์•กํŠธ์ž…๋‹ˆ๋‹ค<h1>):(<h1>๋ฆฌ์•กํŠธ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค<h1>)}
        </div>
    );
}
export default App;

 

์œ„์˜ ์ฝ”๋“œ๋Š” === ์กฐ๊ฑด๋ถ€ ์—ฐ์‚ฐ์ž(์‚ผํ•ญ์—ฐ์‚ฐ์ž)๋ฅผ ์‚ฌ์šฉํ•˜์˜€๋‹ค.

(์กฐ๊ฑด) ? (์กฐ๊ฑด์ด True์ผ๋•Œ) : (์กฐ๊ฑด์ด False์ผ ๋•Œ)

์œ„์˜ ๋ฐฉ์‹์œผ๋กœ ์œ„์œผ ์ฝ”๋“œ๋Š” '๋ฆฌ์•กํŠธ์ž…๋‹ˆ๋‹ค'๊ฐ€ ๊ฒฐ๊ณผ๋กœ ๋‚˜ํƒ€๋‚  ๊ฒƒ์ด๋‹ค.

 

//And ์—ฐ์‚ฐ์ž(&&)์„ ์‚ฌ์šฉ
function App(){
	const name = '๋คผ์•กํŠธ';
    return <div>{name==='๋ฆฌ์•กํŠธ' && <h1>๋ฆฌ์•กํŠธ์ž…๋‹ˆ๋‹ค.</h1>}</div>;
}
export default App;

 

์ด ์ฝ”๋“œ๋Š” ์•ž์˜ ์‚ผํ•ญ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์˜€์ง€๋งŒ : ํ‘œ์‹œ๊ฐ€ ์•„๋‹Œ &&(and์—ฐ์‚ฐ์ž)๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค.

&&(and์—ฐ์‚ฐ์ž)๋Š” : ์™€ ๋น„๊ตํ•ด์„œ, true์ผ ๋•Œ์˜ ๊ฒฐ๊ณผ๋งŒ ์ž…๋ ฅ๋ฐ›๊ณ , false๋ฅผ ๋ Œ๋”๋ง ํ• ๋•Œ๋Š” null๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์•„๋ฌด๊ฒƒ๋„ ๋‚˜ํƒ€๋‚ด์ง€ ์•Š๋Š”๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด, ์ด ์ฝ”๋“œ๋Š” ์กฐ๊ฑด์ด false๋ฅผ ๋ Œ๋”๋งํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์•„๋ฌด๊ฒƒ๋„ ์ถœ๋ ฅ์ด ๋˜์ง€ ์•Š๊ฒ ์ฃ ?

 

๐Ÿ˜ฒ์ž ๊น! ์ด ์ดํ›„์˜ ๋ถ€๋ถ„์€ ์ œ๊ฐ€ ๊ณต๋ถ€๋ฅผ ํ•˜๋‹ค ๊ฐœ์ธ์ ์ธ ๊ถ๊ธˆ์ฆ์œผ๋กœ ๊ณต๋ถ€ํ•œ ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค!

์ œ๊ฐ€ ๋ฆฌ์•กํŠธ์— ๊ด€ํ•ด ๊ณต๋ถ€๋ฅผ ํ•˜๋‹ค๊ฐ€ ์†Œ์†Œํ•˜๊ฒŒ ์˜๋ฌธ์ด ๋“ค์—ˆ๋˜ ์ ์€ ์ธ๋ผ์ธ ์Šคํƒ€์ผ๋ง ๋ถ€๋ถ„ ์˜ˆ์ œ๋ฅผ ํ•˜๊ณ  ์žˆ๋˜ ์ค‘์— ์ฝ”๋“œ์—์„œ style ={{}} ์ด์™€ ๊ฐ™์ด ์ค‘๊ด„ํ˜ธ๊ฐ€ ๋‘๋ฒˆ ๋“ค์–ด๊ฐ€๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์™œ ์ค‘๊ด„ํ˜ธ๊ฐ€ ํ•œ๋ฒˆ์ด ์•„๋‹ˆ๋ผ ๋‘๋ฒˆ ๋“ค์–ด๊ฐ€๋Š” ๊ฑธ๊นŒ์š”?

์ผ๋‹จ ์ฝ”๋“œ๋ฅผ ํ•œ ๋ฒˆ ๋ด๋ณผ๊นŒ์š”?

function App(){
	const name = '๋ฆฌ์•กํŠธ';
    return (
    	<div
        	style={{ //์—ฌ๊ธฐ์„œ ์™œ ์ค‘๊ด„ํ˜ธ๊ฐ€ 2๊ฐœ์ธ ๊ฑธ๊นŒ?
            	backgroundColor : 'black',
                color: 'aqua',
                fontsize: '48px',
                fontWeight: 'bold',
                padding: 16 //๋‹จ์œ„ ์ƒ๋žต์‹œ px
             }}
         >
         {name}
         </div>
      );
 }
 export default App;

 

๋ฆฌ์•กํŠธ์—์„œ๋Š” ๋ณ€์ˆ˜๋Š” ์ค‘๊ด„ํ˜ธ๋กœ ๋ฌถ์–ด์ค˜์•ผํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์€ ๋‹ค ์•Œ๊ณ ์žˆ์ฃ ? 

๊ทธ๋Ÿผ ๋‚˜๋จธ์ง€ ์ค‘๊ด„ํ˜ธ ํ•˜๋‚˜๋Š” ์™œ  ์“ฐ๋Š” ๊ฑธ๊นŒ์š”?

๋ฐ”๋กœ! object ํƒ€์ž…์ด๋ผ ์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ €๋Š” ๋ฐ”๋กœ objectํƒ€์ž…์ด๋ผ๊ณ  ํ•˜๋‹ˆ๊นŒ ์ œ๋Œ€๋กœ ์ดํ•ด๊ฐ€ ์•ˆ๋์—ˆ๋Š”๋ฐ์š”.

ํ’€์–ด์“ฐ๋ฉด ์ด๋Ÿฐ ๋œป์ž…๋‹ˆ๋‹ค! ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ๋ด์ฃผ์„ธ์š”

const style1={
	backgroundColor: black
}
render(){
	return(
    	<div style={style1}>
        	hello react
        </div>
    );
}

 

์œ„์˜ ์ฝ”๋“œ๋ฅผ ๋ดค์„ ๋•Œ style1์„ ๋ณ€์ˆ˜๋‹ˆ๊นŒ ์ค‘๊ด„ํ˜ธ๋กœ ํ•œ ๋ฒˆ ๋ฌถ์–ด์ฃผ์—ˆ๊ณ , ์ € style1์ด ๊ณง ์œ„์—์„œ backgroundColor๋กœ ์“ฐ์—ฌ์žˆ๋‹ค๋ณด๋‹ˆ ์ด๋ฅผ ์ฒ˜์Œ ์ฝ”๋“œ์ฒ˜๋Ÿผ ํ’€์–ด์“ฐ๊ฒŒ ๋˜๋ฉด ์ค‘๊ด„ํ˜ธ๋กœ ํ•œ ๋ฒˆ ๋” ๋ฌถ์–ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.

โ—๊ฒฐ๋ก โ—

๋ฐ– ์ค‘๊ด„ํ˜ธ : ๋ณ€์ˆ˜ ๋ฌถ์–ด์ฃผ๋Š”๊ฒƒ

์•ˆ ์ค‘๊ด„ํ˜ธ : object ํƒ€์ž…

728x90