위코딩
article thumbnail
반응형

JSX는 JavaScript의 확장 문법으로, React에서 사용되는 UI 요소를 작성할 때 사용됩니다. JSX는 JavaScript 코드에서 HTML과 유사한 문법으로 UI를 작성할 수 있도록 도와주며, 가독성이 좋고 작성하기 쉬워 React 컴포넌트 개발에서 널리 사용됩니다. 아래에서 JSX의 소개와 사용법에 대해 알아보겠습니다.


JSX란?

JSX는 React의 핵심 요소 중 하나로, JavaScript의 확장 문법입니다. React 컴포넌트의 UI를 작성할 때 HTML과 유사한 구조를 사용하여 작성할 수 있으며, 이를 통해 코드의 가독성을 높이고 개발자들이 쉽게 이해하고 작성할 수 있도록 도와줍니다. JSX는 React 엘리먼트를 생성하고, 속성(props), 이벤트 핸들러, 자식 요소 등을 정의하는데 사용됩니다.


JSX 사용법

2-1. JSX 요소 생성
JSX에서는 HTML과 유사한 태그 형태로 React 엘리먼트를 생성할 수 있습니다.

// JSX 코드 예시
const element = <h1>Hello, JSX!</h1>;

위의 코드에서는 <h1>Hello, JSX!</h1>라는 JSX 코드로 React 엘리먼트를 생성합니다. 이렇게 생성된 엘리먼트는 JavaScript 객체로 변환되어 React에서 사용됩니다.

2-2. JSX 표현식 사용
JSX 내에서 중괄호 {}를 사용하여 JavaScript 표현식을 사용할 수 있습니다.

// JSX 코드 예시
const name = 'John';
const element = <h1>Hello, {name}!</h1>;

위의 코드에서 {name}은 변수 name에 저장된 값을 JSX 내부에 표현하는 표현식입니다. 이를 통해 동적인 값을 JSX에 포함시킬 수 있습니다.

2-3. JSX 속성(props) 사용
JSX 태그 내에서 속성(props)을 지정할 수 있습니다.

// JSX 코드 예시
const element = <img src="image.jpg" alt="Image" />;

위의 코드에서 <img> 태그는 srcalt라는 속성을 가지고 있습니다. JSX에서는 HTML 속성과 마찬가지로 속성을 사용하여 컴포넌트에 정보를 전달할 수 있습니다.

2-4. JSX 자식 요소
JSX 태그는 자식 요소를 가질 수 있습니다.

// JSX 코드 예시
const element = (
  <div>
    <h1>Hello, JSX!</h1>
    <p>This is a JSX example.</p>
  </div>
);

위의 코드에서 <div> 태그는 <h1><p>라는 자식 요소를 가지고 있습니다. JSX에서 여러 요소를 그룹화하기 위해 부모 요소로 감싸주는 것이 필요합니다.

2-5. JSX와 JavaScript 조합
JSX와 일반 JavaScript 코드를 함께 사용할 수 있습니다.

// JSX 코드 예시
const name = 'John';
const element = (
  <div>
    <h1>Hello, {name}!</h1>
    <p>Current time: {new Date().toLocaleTimeString()}</p>
  </div>
);

위의 코드에서 {new Date().toLocaleTimeString()}는 JavaScript 코드로, 현재 시간을 표시하는 표현식입니다. JSX 내에서 JavaScript 코드를 사용하여 동적인 데이터를 표현할 수 있습니다.


JSX는 React에서 UI를 작성하는데 사용되는 강력한 문법으로, HTML과 유사한 구조를 가지고 있어 컴포넌트 개발을 보다 쉽고 간편하게 할 수 있습니다. JSX를 통해 가독성이 좋은 코드를 작성하고 동적인 데이터를 쉽게 표현할 수 있으며, 이를 JavaScript 객체로 변환하여 React에서 사용합니다. JSX를 활용하여 효율적이고 강력한 React 컴포넌트를 개발해보세요!

반응형

'Framework > React' 카테고리의 다른 글

[React] 상태 관리  (0) 2023.07.21
[React] React 라우팅  (0) 2023.07.21
[React] React Hooks  (0) 2023.07.21
[React] React 컴포넌트  (0) 2023.07.21
[React] React 소개와 기본 구조  (0) 2023.07.21
loading loading