JSX๋ฅผ ์ด์ฉํ์ฌ html์ ์์ฑ ์ ์กฐ๊ฑด๋ฌธ์ ์ฌ์ฉํ๊ฒ ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค. ๋ฐ๋ผ์ coding apple ๊ฐ์ข๋ฅผ ํตํด React์์ ์กฐ๊ฑด๋ฌธ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์๋ ์ด๋ค ๊ฒ๋ค์ด ์๋์ง ์์๋ณด์๋ค.
function Component() {
if ( true ) {
return <p>์กฐ๊ฑด๋ฌธ์ด ์ฐธ์ด๋ฉด ๋ณด์ฌ์ค HTML</p>;
} else {
return null;
}
}
์ปดํฌ๋ํธ ๋ด์์ ์กฐ๊ฑด๋ฌธ์ ์ฌ์ฉํ๋ ค๋ฉด ์ด์ ๊ฐ์ด ์ฌ์ฉํด์ผ ํ๋ฉฐ, ์๋ฐ์คํฌ๋ฆฝํธ if๋ฌธ์ return() ์, ์ฆ JSX ๋ด์์๋ ์ฌ์ฉ ๋ถ๊ฐ๋ฅํ๋ค.
์ฆ, <div> if (condition) {statement} </div>
์ด๋ฐ ํํ์ด ๊ธ์ง๋๋ค.
๊ทธ๋์ ๋ณดํต return + JSX ์ ์ฒด๋ฅผ ๋ฑ๋ if๋ฌธ์ ์ฌ์ฉํ๋ค.
function Component() {
return (
<div>
{
1 === 1
? <p>์ฐธ์ด๋ฉด ๋ณด์ฌ์ค HTML</p>
: null
}
</div>
)
}
์ผํญ์ฐ์ฐ์๋ ์กฐ๊ฑด๋ฌธ ? ์กฐ๊ฑด๋ฌธ์ด ์ฐธ์ผ๋ ์คํํ ์ฝ๋ : ๊ฑฐ์ง์ผ ๋ ์คํํ ์ฝ๋
ํ์์ผ๋ก ์ฌ์ฉํ๋ค.
JSX ๋ด์์ if/else ๋์ ์ธ ์ ์๋ค๋๊ฒ ์ฅ์ ์ด๋ฉฐ ์กฐ๊ฑด์ ๊ฐ๋จํ ์ฃผ๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ค.
function Component() {
return (
<div>
{
1 === 1
? <p>1 === 1 ์กฐ๊ฑด์ด ์ฐธ์ด๋ฉด ๋ณด์ฌ์ค HTML</p>
: ( 2 === 2
? <p>1 === 1 ์กฐ๊ฑด์ด ๊ฑฐ์ง์ด๋ฉด์ 2 === 2 ์กฐ๊ฑด์ด ์ฐธ์ด๋ฉด ๋ณด์ฌ์ค HTML</p>
: <p>1 === 1 ์กฐ๊ฑด์ด ๊ฑฐ์ง์ด๋ฉด์ 2 === 2 ์กฐ๊ฑด์ด ๊ฑฐ์ง์ด๋ฉด ๋ณด์ฌ์ค HTML</p>
)
}
</div>
)
}
๋ํ ์ผํญ์ฐ์ฐ์๋ ์ด์ ๊ฐ์ด ์ค์ฒฉ ์ฌ์ฉ๋ ๊ฐ๋ฅํ๋, ๋์ค์ ์ฝ์์ ๋ ๋๋ ๋จ์ด ์ฝ์์ ๋ ์ดํดํ๊ธฐ ํ๋ ์ฝ๋๋ ์ข์ง ์์ผ๋ฏ๋ก ์ถ์ฒํ์ง ์๋๋ค.
function Component() {
return (
<div>
{ 1 === 1 && <p>์ฐธ์ด๋ฉด ๋ณด์ฌ์ค HTML</p> }
</div>
)
}
&& ์ฐ์ฐ์๋ ์ข์ธก ์กฐ๊ฑด๋ฌธ์ด true์ด๋ฉด ์ฐ์ธก JSX๊ฐ ๊ทธ ์๋ฆฌ์ ๋จ๊ฒ ๋๋ค. ์ข์ธก ์กฐ๊ฑด๋ฌธ์ด false์ด๋ฉด false๊ฐ ๋จ๊ธฐ ๋๋ฌธ์ HTML๋ก ๋ ๋๋งํ์ง ์๊ฒ ๋๋ค. ๊ทธ๋ ๊ธฐ์ ๋ณ์๊ฐ ์ฐธ์ด๋ฉด <p></p>
๋ฅผ ์ฌ์ฉํ๊ณ , ์ฐธ์ด ์๋๋ฉด null์ ์ฌ์ฉํ๋ ์ํฉ์์ ์์ฃผ ์ธ ์ ์๋ ๊ฐ๋จํ ์กฐ๊ฑด๋ฌธ์ด๋ค.
&& ์ฐ์ฐ์
์ข์ฐ ์กฐ๊ฑด๋ฌธ์ด ๋ชจ๋ true๋ฉด ์ ์ฒด๋ฅผ true๋ก ๋ฐ๊ฟ์ฃผ๋ ์ฐ์ฐ์์ด๋ค.
์ด๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ && ๊ธฐํธ๋ก ๋น๊ตํ ๋ true์ false๋ฅผ ๋ฃ๋๊ฒ ์๋๋ผ ์๋ฃํ์ ๋ฃ๊ฒ ๋๋ฉดtrue && '์๋ '; false && '์๋ '; true && false && '์๋ ';
๋งจ ์ ์ฝ๋๋ '์๋ '์ด ๋จ๊ณ ์ค๊ฐ ์ฝ๋๋ false, ๋งจ ์๋ ์ฝ๋๋ false๊ฐ ๋จ๊ฒ ๋๋ค.
function Component2(){
var user = 'seller';
if (user === 'seller'){
return <h4>ํ๋งค์ ๋ก๊ทธ์ธ</h4>
} else if (user === 'customer'){
return <h4>๊ตฌ๋งค์ ๋ก๊ทธ์ธ</h4>
} else {
return <h4>๊ทธ๋ฅ ๋ก๊ทธ์ธ</h4>
}
}
if๋ฌธ์ ์ด๋ ๊ฒ ์ฐ๋ฌ์ ์ฌ๋ฌ ๊ฐ ์จ์ผ๋๋ ์ํฉ๋ค์ด ์์ ๋ ์๋ฐ์คํฌ๋ฆฝํธ switch ๋ฌธ๋ฒ์ ์ด์ฉํ๋ฉด ๊ดํธ๋ฅผ ์กฐ๊ธ ๋ ์ค์ผ ์ ์๋ค.
function Component2(){
var user = 'seller';
switch (user){
case 'seller' :
return <h4>ํ๋งค์ ๋ก๊ทธ์ธ</h4>
case 'customer' :
return <h4>๊ตฌ๋งค์ ๋ก๊ทธ์ธ</h4>
default :
return <h4>๊ทธ๋ฅ ๋ก๊ทธ์ธ</h4>
}
}
์ด์ ๊ฐ์ด switch ๋ฌธ๋ฒ์ ์ฌ์ฉํ์ ๋ ์ฅ์ ์ if๋ฌธ์ ์ฐ๋ฌ์์ฐ๋ ๋์ ์ค์ด๋ ์ฝ๋๋ก ์ฌ์ฉํ ์ ์์ง๋ง, ์กฐ๊ฑด๋ฌธ์์ ํ๋์ ๋ณ์๋ง ๊ฒ์ฌํ ์ ์๋ค๋ ๊ฒ์ด ๋จ์ ์ด๋ค.
switch ๋ฌธ๋ฒ
1. switch (condition) {statement} ํ์
2. {statement} ์์case ์กฐ๊ฑดํ๋จ :
์ ๋ฃ์ด์ค๋ค.
3.case ์กฐ๊ฑด ํ๋จ :
์ด ์ฐธ์ด๋ฉด ๋ฐ๋ก ์๋์ ์๋ ์ฝ๋๋ฅผ ์คํํ๋ค.
4.default :
๋ ๋งจ ๋ง์ง๋ง์ ์ฐ๋ else๋ฌธ๊ณผ ๋์ผํ๋ค.
์๋ฅผ ๋ค์ด ์ผํ๋ชฐ์ ์ ์ํ๋ค๊ณ ํ ๋, ๊ฒฝ์ฐ์ ๋ฐ๋ผ์ ์ํ์ ๋ณด, ๋ฐฐ์ก์ ๋ณด, ํ๋ถ์ฝ๊ด ๋ฑ์ ๋ด์ฉ์ ๋ณด์ฌ์ค์ผ ํ ๊ฒ์ด๋ค.
ํ์ฌ state๊ฐ info๋ฉด <p>์ํ์ ๋ณด</p>
ํ์ฌ state๊ฐ shipping์ด๋ฉด <p>๋ฐฐ์ก์ ๋ณด</p>
ํ์ฌ state๊ฐ refund๋ฉด <p>ํ๋ถ์ฝ๊ด</p>
์ด๋ฐ ๊ฒ์ ๋ณด์ฌ์ฃผ๊ณ ์ถ์ ๋ ์ผ๋จ state๋ฅผ ๋ง๋ค์ด๋๊ณ if๋ฌธ์ผ๋ก state๋ฅผ ๊ฒ์ฌํ๋ ๋ฌธ๋ฒ์ ์จ์ผํ ๊ฒ ๊ฐ์ง๋ง, ์ด๋ฒ์ if๋ฌธ์ด ์๋๋ผ ์๋ฐ์คํฌ๋ฆฝํธ object ์๋ฃํ์ ๋ด๊ฐ ๋ณด์ฌ์ฃผ๊ณ ์ถ์ HTML์ ๋ค ๋ด๋๋ค.
function Component() {
var current_state = 'info';
return (
<div>
{
{
info : <p>์ํ์ ๋ณด</p>,
shipping : <p>๋ฐฐ์ก๊ด๋ จ</p>,
refund : <p>ํ๋ถ์ฝ๊ด</p>
}[current_state]
}
</div>
)
}
JSX ์์์ html ํ๊ทธ๋ค์ ์ ๋ ๊ฒ object์ ๋ด๋ , array์ ๋ด๋ ์๋ฌด ์๊ด์ด ์๋ค. ์ด๋ ๊ฒ object ์๋ฃํ์ผ๋ก HTML์ ๋ค ์ ๋ฆฌํด์ ๋ด์ ๋ค์ ๋ง์ง๋ง์ object{} ๋ค์ [] ๋๊ดํธ๋ฅผ ๋ถ์ฌ key๊ฐ์ด current_state
์ธ ์๋ฃ๋ฅผ ์ฌ์ฉํ ์ ์๋ค. ๊ทธ๋ผ ์ด์ current_state
๋ผ๋ ๋ณ์์ ๊ฐ์ ๋ฐ๋ผ์ ์ํ๋ HTML์ ๋ณด์ฌ์ค ์ ์๋ค.
๋ง์ฝ์ current_state
๊ฐ 'info'๋ฉด info ํญ๋ชฉ์ ์ ์ฅ๋ <p>์ํ์ ๋ณด</p>
๊ฐ ๋ณด์ฌ์ง ๊ฒ์ด๊ณ , current_state
๊ฐ 'refund'๋ฉด refund ํญ๋ชฉ์ ์ ์ฅ๋ <p>ํ๋ถ์ฝ๊ด</p>
๊ฐ ๋ณด์ฌ์ง๋ ๊ฒ์ด๋ค.
JSX์์ ์ฌ์ฉํ๋ ์กฐ๊ฑด๋ฌธ๋ ๋ค๋ฅธ ์ธ์ด๋ค๊ณผ ๋น์ทํ๊ฒ ๊ธฐ๋ณธ์ ์ธ ์กฐ๊ฑด๋ฌธ์ด ๋ง์์ ํธํ๊ฒ ๊ณต๋ถํ๋ ๊ฒ ๊ฐ๋ค. ๋ค๋ง ์ฃผ์ํ ์ ์ด ์๋ค๋ฉด if/else
์ ๊ฒฝ์ฐ return() ์์์ ์ฌ์ฉํ ์ ์๋ค๋ ์ ๋ง ์กฐ์ฌํ๋ฉด ๋ ๊ฒ ๊ฐ๋ค.