JSX를 사용하면 JavaScript 파일에 HTML 마크업 뿐만 아니라 비즈니스 로직도 작성할 수 있습니다.
export default function CourseItem(props) {
**const isEmpty = true;
if (isEmpty) {
return (
<p>강의가 없습니다.</p>
)
}**
return (
<article className="course">
<img className="course__img" src="./img/htmlcss.png" alt="" />
<div className="course__body">
<div className="course__title">입문자를 위한, HTML&CSS 웹 개발 입문</div>
<div className="course__description">웹 개발에 필요한 기본 지식을 배웁니다. </div>
</div>
</article>
);
}
뿐만 아니라 JSX 내부 마크업에서 자바스크립트 변수 및 로직을 사용할 수 있습니다. 이때 JSX에서 중괄호({}
)를 사용하여 JavaScript를 사용할 수 있습니다.
JSX에서 엘리먼트 속성에 문자열을 전달하기 위해서는 작은따옴표나 큰따옴표로 묶어야 합니다.
export default function Avatar() {
return (
<img
className="avatar"
src="<https://i.imgur.com/7vQD0fPs.jpg>"
alt="Gregorio Y. Zara"
/>
);
}
그러나 JSX에서 src
또는 alt
와 같은 속성에 자바스크립트 변수를 활용하여 동적으로 문자열을 전달하려면 중괄호({}
)를 사용하여 전달할 수 있습니다.
export default function Avatar() {
const avatar = '<https://i.imgur.com/7vQD0fPs.jpg>';
const description = 'Gregorio Y. Zara';
return (
<img
className="avatar"
**src={avatar}
alt={description}**
/>
);
}
위에서 className="avatar"
Class 이름과 src={avatar}
자바스크립트 변수는 다른 값입니다.
src/components/course/CourseItem.jsx
JSX는 자바스크립트를 작성하는 특별한 방법입니다. 그리고 중괄호 {}
를 사용하면 마크업 내에서 자바스크립트를 사용할 수 있습니다.
export default function TodoList() {
const name = 'Gregorio Y. 54654Zara';
return (
<h1>{name}'s To Do List</h1>
);
}
const today = new Date();
function formatDate(date) {
return new Intl.DateTimeFormat(
'en-US',
{ weekday: 'long' }
).format(date);
}
export default function TodoList() {
return (
<h1>To Do List for {formatDate(today)}</h1>
);
}