JSX 문법 이해하기
JSX(JavaScript XML)는 React에서 UI를 설계할 때 사용하는 JavaScript의 확장 문법입니다.
우리는 JSX를 통해 더 직관적이고 효율적으로 컴포넌트를 작성할 수 있습니다.
JSX의 개념과 필요성
JSX는 JavaScript 코드 안에 HTML과 유사한 마크업을 작성할 수 있게 해주는 문법입니다.
React에서 JSX를 사용하는 주요 이유는 다음과 같습니다.
- 가독성 : UI 구조를 시각적으로 더 쉽게 이해할 수 있습니다.
- 작성 용이성 : HTML과 유사한 구문으로 컴포넌트를 쉽게 작성할 수 있습니다.
- 유지보수성 : 마크업과 로직을 한 곳에서 관리할 수 있어 유지보수가 쉬워집니다.
HTML과 JSX의 차이점
JSX는 HTML과 유사해 보이지만, 몇 가지 중요한 차이점이 있습니다.
1. 클래스 속성 : HTML의 class
속성은 JSX에서 className
으로 사용됩니다.
2. 스타일 속성 : JSX에서는 스타일을 객체로 전달합니다.
3. 셀프 클로징 태그 : JSX에서는 모든 태그를 명시적으로 닫아야 합니다.
JSX에서 JavaScript 표현식 사용하기
JSX 내에서 중괄호 {}
를 사용하여 JavaScript 표현식을 삽입할 수 있습니다.
이는 변수, 함수 호출, 연산 등 모든 유효한 JavaScript 표현식에 적용됩니다.
JSX의 규칙과 제한사항
- 단일 루트 요소 : JSX 표현식은 반드시 하나의 부모 요소로 감싸져 있어야 합니다.
- JavaScript 예약어 :
class
,for
등의 예약어 대신className
,htmlFor
를 사용해야 합니다. - 속성 이름 : 속성 이름은 camelCase로 작성합니다 (예 :
onClick
,tabIndex
). - 조건부 렌더링 : JSX 내에서 조건부 렌더링을 위해 삼항 연산자나 논리 연산자를 사용할 수 있습니다.
JSX가 React 요소로 변환되는 과정
JSX는 실제로 React.createElement()
함수 호출로 변환됩니다.
이 코드는
다음과 같이 변환됩니다.
이 과정은 Babel과 같은 도구에 의해 자동으로 수행되며, 개발자가 직접 신경 쓸 필요는 없습니다.
JSX 사용 예제
다음은 JSX를 사용한 간단한 React 컴포넌트의 예입니다.
이 예제에서 우리는 다음과 같은 JSX 문법을 사용했습니다.
className
을 사용하여 CSS 클래스를 지정했습니다.- 중괄호
{}
를 사용하여 JavaScript 표현식 (props와 날짜)을 삽입했습니다. - 조건부 렌더링을 위해
&&
연산자를 사용했습니다.
JSX는 React 개발의 중심이 되는 문법으로, UI 구조를 직관적으로 표현할 수 있게 해줍니다.
HTML과 유사하면서도 JavaScript의 강력함을 활용할 수 있어, 복잡한 UI 로직을 간결하게 작성할 수 있습니다.
JSX를 통해 개발자는 마크업과 로직을 하나의 파일에서 관리할 수 있어, 컴포넌트 기반 개발의 이점을 최대한 활용할 수 있습니다.