
React – JSX와 렌더링 – JSX 문법 – 1 – JSX에서 표현식과 중괄호 사용법
안녕하세요, React 배우는 여러분! 😊
이번 시간에는 JSX에서 중괄호 {}
를 사용하는 법, 그리고 그 안에서 어떤 표현식들을 쓸 수 있는지 자세히 알려드릴게요.
중괄호는 JSX에서 마치 “마법의 포탈” 같은 역할을 해요.
HTML과 비슷해 보이는 JSX 안에서도 자유롭게 JavaScript 표현식을 넣을 수 있게 해주니까요!
1. JSX에서 중괄호는 왜 쓸까요?
우리가 JSX를 사용할 때는 정적인 HTML만으로는 부족해요.
예를 들어,
- 사용자 이름을 넣고 싶다든지,
- 조건에 따라 다른 텍스트를 보여주고 싶다든지,
- 반복해서 여러 항목을 표시하고 싶다든지!
이럴 땐 JavaScript의 변수, 연산, 함수 호출 등을 중괄호 {}
안에 넣으면 해결돼요.
✅ 중괄호는 JSX 안에서 JavaScript 표현식을 삽입하는 유일한 방법입니다!
2. 변수 출력하기
가장 기본적인 사용 예시는 바로 변수 출력이에요.
const name = '홍길동';
const greeting = <h1>안녕하세요, {name}님!</h1>;
➡️ 브라우저 화면에는
“안녕하세요, 홍길동님!” 이라고 출력됩니다.
📌 JSX에서
{}
안에 변수명을 넣으면, 변수의 값이 그대로 문자열처럼 출력돼요.
3. 수식이나 계산식 넣기
단순 변수뿐만 아니라 계산식도 넣을 수 있어요.
const price = 1500;
const quantity = 3;
const total = <p>총합: {price * quantity}원</p>;
➡️ 결과: 총합: 4500원
4. 함수 호출도 가능해요!
JSX 중괄호 안에서는 함수 호출 결과도 표현할 수 있어요.
function getGreeting(name) {
return `${name}님, 환영합니다!`;
}
const element = <p>{getGreeting('영희')}</p>;
➡️ 결과: 영희님, 환영합니다!
🎯 단, JSX 안에서 함수가 호출될 뿐이므로 함수 내부에서 side effect가 생기지 않도록 주의해야 해요!
5. 삼항 연산자 사용하기 (조건에 따라 다르게 표현)
JSX에서는 if
문을 직접 쓸 수는 없지만, 삼항 연산자를 활용해 조건 분기를 할 수 있어요.
const isLoggedIn = true;
const element = (
<div>
{isLoggedIn ? <p>로그인 완료</p> : <p>로그인이 필요합니다</p>}
</div>
);
➡️ 결과: 로그인 완료
✅
if-else
대신삼항 연산자
를 활용하는 것이 JSX의 조건 표현 기본 방식입니다!
6. AND 연산자(&&
)로 조건 표현
특정 조건이 참일 때만 보여주고 싶다면 &&
연산자를 사용할 수 있어요.
const hasNewMessage = true;
const element = (
<div>
<h1>안녕하세요!</h1>
{hasNewMessage && <p>📩 새로운 메시지가 도착했어요!</p>}
</div>
);
➡️ hasNewMessage
가 true
일 때만 <p>
가 표시돼요.
7. 배열과 반복 표현
중괄호 안에서 배열을 map() 함수로 순회하면서 여러 요소를 생성할 수도 있어요.
const fruits = ['🍎', '🍌', '🍇'];
const element = (
<ul>
{fruits.map((fruit, index) => (
<li key={index}>{fruit}</li>
))}
</ul>
);
➡️ 결과:
- 🍎
- 🍌
- 🍇
🎯
key
속성은 리액트가 리스트 항목을 구분하는 데 필요하므로 꼭 넣어주세요!
8. 객체는 직접 출력할 수 없어요 ❌
const user = { name: '민수', age: 28 };
// 아래 코드는 오류 발생!
const element = <p>{user}</p>;
➡️ 객체는 직접 출력할 수 없고, 속성 단위로 꺼내서 표현해야 해요.
const element = <p>{user.name} / {user.age}세</p>;
9. undefined, null, boolean 값은 출력되지 않음
이건 React의 특징 중 하나예요.
const value = undefined;
const element = <p>{value}</p>; // 아무 것도 렌더링되지 않음
true
,false
,null
,undefined
는 화면에 아무것도 출력하지 않아요.- 조건문처럼 활용되기도 해요!
10. 중첩 JSX 표현식도 가능
const isLoggedIn = true;
const userName = '지은';
const element = (
<div>
{isLoggedIn ? (
<h2>{userName}님, 환영합니다!</h2>
) : (
<h2>로그인이 필요합니다.</h2>
)}
</div>
);
🎉 JSX 안에서 또 다른 JSX를 조건에 따라 선택적으로 렌더링할 수 있어요!
주의할 점 요약
항목 | 주의사항 |
---|---|
{} 는 표현식만 가능 |
변수, 계산, 함수 호출 등 가능하지만, if , for 는 불가능 |
조건 표현은 ? : , && 로 |
JSX 내부에 if 문 쓰면 오류 발생 |
객체는 출력 불가 | {user} 대신 {user.name} 등으로 속성 추출 |
null , undefined , false 는 출력 안 됨 |
렌더링 되지 않지만 조건문으로는 활용 가능 |
리스트 렌더링 시 key 필수 |
고유한 key 없으면 경고 발생 |
마무리하며
JSX에서 중괄호 {}
는 단순한 표현이 아니라, React의 동적 UI를 만들어내는 핵심 도구예요.
덕분에 HTML처럼 보이지만, JavaScript의 힘을 그대로 활용할 수 있게 되었죠!
이제 여러분은 JSX 안에서 자유자재로 조건 처리하고, 변수를 사용하고, 반복도 할 수 있게 되었어요! 🙌
다음 글에서는 JSX에서 조건문과 반복문을 더 깊이 있게 살펴볼게요. 함께 계속 성장해요! 💪🚀