반응형
리액트에서 조건문 사용하는방법을 알아보겠습니다.
리액트에서는 클래스로 만들어진 컴포넌트에 꼭 render함수가 있어야하며 JSX로 return을 해줘야하는데,
JSX에서는 자바스크립트 조건문처럼 if나 switch문으로 처리가 불가능합니다.
틀린 문법 - IF문
import React from 'react';
function App() {
const test = 12345;
return (
if(test === 12345){
<div>맞아요</div>
}else{
<div>틀려요</div>
}
);
}
export default App;
해당방식으로 완성하게되면, 구문에러를 확인 할 수 있습니다.
리액트 JSX에서는 삼항연사자 또는 AND(&&) 연산자를 통해 조건문을 구성합니다.
삼항연사자로 조건확인하기
import React from 'react';
function App() {
const test = 12345;
return (
test === 12345 ? <div>맞아요</div> : <div>틀려요</div>
);
}
export default App;
이와 같이 if else처리를 삼항연산자를 통해 만드시면 됩니다.
AND연산자를 통한 처리
import React from 'react';
function App() {
const test = 12345;
return (
test === 12345 && <div>맞아요 (AND연산)</div>
);
}
export default App;
AND연산은 조건문이 true일때만 동작하는 else문이 없는 조건문이라고 생각하면 됩니다.
간단한 조건문의 경우 위의 삼항연산자나 AND연산자를 통해 완성시킬 수 있지만 복잡한 경우 어떻게 해야할까요?
삼항에 삼항에 삼항은 가독성도 떨어지고 만들기도 힘든데 이때는 즉시발동함수를 사용하시면 됩니다.
즉시발동함수를 통한 조건문 처리
import React from 'react';
function App() {
const word = 'react';
return (
<div>
{
(function(){
if(word == 'react'){
return ("리액트!")
}else if(word == 'hello'){
return ("헬로우!")
}else if(word == 'world'){
return ("월드!")
}
})()
}
</div>
);
}
export default App;
사실 조건에 해당하면 바로 return처리되기 때문에 else if도 필요없긴 합니다...
화살표함수 형태로 표현도 가능합니다. 화살표함수는 자바 1.8이상에서 보는 list-> 와 비슷한 함수로
es6 문법에서 나온 함수로 function()부분을 대체합니다.
즉시발동함수(화살표함수)를 통한 조건문 처리
return (
<div>
{
(()=>{
if(word == 'react'){
return ("리액트!")
function()부분을 ()=> 변경하여도 동일하게 동작합니다.
이상으로 리액트 조건문 사용방법을 알아봤습니다.
반응형
'WEB > React' 카테고리의 다른 글
React - 타입스크립트 버전으로 리액트 프로젝트 생성부터 자주쓰는 npm설치 정리 (0) | 2022.11.10 |
---|---|
React - State를 관리하는 recoil(state management) (0) | 2022.10.31 |
React - react-hook-form 사용하기(useForm) (0) | 2022.10.31 |
npm 동작 오류(npm does not support Node.js v10.16.0) (0) | 2021.12.28 |
React - useEffect에서 setInterval 적용기(React Hook useEffect has missing dependencies:) (0) | 2021.12.22 |