React 공식 홈페이지 따라하기
React 공식 홈페이지 따라하기 - JSX안에서 자바스크립트 사용하기
vitamin3000
2024. 11. 18. 22:25
마크업 내부에서 동적인 프로퍼티를 참조하고 싶을 때 JSX에서 중괄호를 사용하여 JS를 사용할 수 있다.
학습 내용
- 따옴표로 문자열 전달하는 방법
- 중괄호가 있는 JSX 안에서 JS 변수를 참조하는 방법
- 중괄호가 있는 JSX 안에서 JS 함수를 호출하는 방법
- 중괄호가 있는 JSX 안에서 JS 객체를 사용하는 방법
문자열 어트리뷰트를 JSX에 전달하려면 작은 따옴표나 큰 따옴표로 묶어야 한다.
<img
className="avatar"
src="https://i.imgur.com/7vQD0fPs.jpg"
alt="Gregorio Y. Zara"
/>
src나 alt를 동적으로... 즉 JS변수를 참조하려면
"와 "를 { 와 }로 바꿔 JS의 값을 사용
const avatar = 'https://i.imgur.com/7vQD0fPs.jpg';
return (
<img
className="avatar"
src={avatar}
/>
아래 코드에서 사용한 formatDate()와 같은 함수 호출을 포함해 모든 JS 표현식은 중괄호 사이에서 작동
const today = new Date();
function formatDate(date) {
return new Intl.DateTimeFormat(
'ko-KR',
{ weekday: 'long' }
).format(date);
}
export default function TodoList() {
return (
<h1>To Do List for {formatDate(today)}</h1> // JSX안에서 함수 호출
);
}
JSX 중괄호 안에서 객체 사용하기
const person = { // 객체 선언
name: 'Gregorio Y. Zara',
theme: {
backgroundColor: 'black',
color: 'pink'
}
};
export default function TodoList() {
return (
<div style={person.theme}>
<h1>{person.name}'s Todos</h1> // 중괄호로 참조
</div>
);
}
JSX 안에서 중괄호는 두 가지 방법으로만 사용할 수 있다.
1. JSX 태그 안의 문자:
<h1>{name}'s To Do List</h1> // 작동
<{tag}>Gregorio Y. Zara's To Do List</{tag}> // 오작동
<h1>{name}'s To Do List</h1>는 작동하지만, <{tag}>Gregorio Y. Zara's To Do List</{tag}>는 작동하지 않습니다.
2. = 바로 뒤에 오는 어트리뷰트:
src={avatar} // avatar 변수를 읽지만
src="{avatar}" // "{avatar}" 문자열을 전달