[React] JSX 사용법
JSX(JavaScript XML)는 JavaScript와 HTML을 혼합하여 사용하는 문법으로, React와 같은 라이브러리에서 주로 사용됩니다. JSX를 사용하면 UI를 직관적이고 간편하게 작성할 수 있습니다. 아래에서는 JSX의 사용법과 주의사항을 예제와 함께 설명해드리겠습니다.
JSX 사용법
예제
import React from 'react';
function Welcome(props) {
return <h1>Hello, {props.name}</h1>;
}
function App() {
return (
<div>
<Welcome name="Sara" />
<Welcome name="Cahal" />
<Welcome name="Edite" />
</div>
);
}
export default App;
위 예제에서는 Welcome이라는 컴포넌트를 정의하고, App 컴포넌트에서 여러 번 사용하고 있습니다. Welcome 컴포넌트는 props.name을 통해 전달된 값을 사용하여 인사말을 표시합니다.
사용법
- JSX 구문 사용: JSX는 HTML과 매우 유사한 구문을 사용하여 직관적으로 UI를 구성할 수 있습니다.
-
jsx
const element = <h1>Hello, world!</h1>;
- 자바스크립트 표현식 포함: JSX 내부에서는 중괄호 {}를 사용하여 JavaScript 표현식을 포함할 수 있습니다.
-
jsx
const name = 'Sara'; const element = <h1>Hello, {name}</h1>;
- 컴포넌트 사용: JSX에서는 사용자 정의 컴포넌트도 사용할 수 있습니다. 컴포넌트 이름은 항상 대문자로 시작해야 합니다.
-
jsx
function Welcome(props) { return <h1>Hello, {props.name}</h1>; }
- HTML 속성 사용: JSX에서 HTML 속성을 사용하여 요소의 속성을 설정할 수 있습니다.
-
jsx
const element = <div tabIndex="0"></div>;
- 자식 요소 포함: JSX 태그는 다른 요소를 자식으로 포함할 수 있습니다.
-
jsx
const element = ( <div> <h1>Hello!</h1> <h2>Good to see you here.</h2> </div> );
주의사항
- 단일 부모 요소: 모든 JSX 표현식은 단일 부모 요소로 감싸야 합니다.
-
jsx
return ( <div> <h1>Hello, world!</h1> <h2>Good to see you here.</h2> </div> );
- JavaScript와 HTML 혼합: JSX는 JavaScript와 HTML을 혼합하여 사용하므로, 중괄호 {}를 사용하여 JavaScript 표현식을 포함할 수 있습니다.
-
jsx
const name = 'Sara'; return <h1>Hello, {name}</h1>;
- HTML 속성: JSX에서는 HTML 속성을 카멜 표기법으로 사용해야 합니다. 예를 들어, class 대신 className을 사용합니다.
-
jsx
const element = <div className="container"></div>;
- 컴포넌트 이름: JSX에서 컴포넌트 이름은 반드시 대문자로 시작해야 합니다. 소문자로 시작하는 이름은 HTML 태그로 인식됩니다.
-
jsx
function Welcome(props) { return <h1>Hello, {props.name}</h1>; }
- Self-closing 태그: 내용이 없는 요소는 반드시 self-closing 태그로 작성해야 합니다.
-
jsx
const element = <img src="image.jpg" alt="description" />;
JSX를 사용하면 UI를 간편하고 직관적으로 작성할 수 있습니다.
'낙서장[1] > 1. React' 카테고리의 다른 글
[React] app.jsx, main.jsx, package.json, api.js 파일설명 (0) | 2025.02.06 |
---|---|
[React] 리액트 JSX (0) | 2025.02.06 |
[React] Axios Interceptor (0) | 2025.02.05 |
[React] 싱글플레이어 애플리케이션 단점 세션초기화 (1) | 2025.02.05 |
[React] Promise 객체 비동기 작업의 세 가지 상태 (0) | 2025.02.05 |