Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

우당탕탕 개발일지

JSX 본문

Front-end/React

JSX

YUDENG 2023. 4. 19. 00:06

JS 파일도 리액트에서 UI를 구현하는 데 사용될 수 있지만,  JSX를 사용하는 것이 일반적이다.

JSX란 자바스크립트를 확장한 문법이다. 자바스크립트에서 HTML 문법을 사용할 수 있으며, 리액트에서 UI를 구성하는 데 사용된다. 

 

브라우저는 JSX를 이해하지  못하기 때문에 JSX 코드를 JavaScript 코드로 변환해야 한다.

Babel은 JSX를 JavaScript로 변환하는 데 사용되는 가장 일반적인 도구 중 하나이다. Babel을 사용하여 JSX를 자바스크립트로 변환하면, 리액트에서 작성한 UI 구성 요소를 일반적인 자바스크립트 코드로 컴파일하여 브라우저에서 실행할 수 있다.

pnpm add -D babel

 

< JSX와 HTML의 다른점 >

 

  • 속성
    Class 대신 ClassName을 사용해야 하며, for 대신 htmlFor를 사용해야 한다. 그 이유는 class와 for가 자바스크립트에서 예약어이기 때문이다.
  • 스타일
    HTML과는 달리 CSS 문자열을 받지 않으며, 스타일 이름을 카멜 표기법으로 지정한 JS 객체를 받는다.

 

< JSX 사용 방법 >

 

  • JSX 파일은 리액트 모듈을 사용하지 않더라도 import 해줘야 한다.
  • 자바스크립트를 JSX 내부에서 사용할 때에는 중괄호를 사용해야 한다.
  • 사용자가 정의한 컴포넌트의 이름은 반드시 대문자로 시작해야 한다. ( 소문자로 시작하는 것은 <div>와 같은 컴포넌트라는 의미 )

 

리액트로 작성한 코드들은 자바스크립트로 변환된다. 그렇기에 .js와 .jsx는 확장자로서의 차이가 없다. 

타입스크립트의 경우, .tsx에서는 JSX 문법을 사용할 수 있고, 리액트에서 UI를 작성할 때 타입스크립트를 사용하여 타입 검사를 수행하는 데 사용된다. .ts는 JSX 문법이 불가능하고, 자바스크립트 코드에서 타입 검사와 컴파일 오류 검사를 수행하는 데 사용된다.

728x90

'Front-end > React' 카테고리의 다른 글

리액트 함수 선언  (0) 2023.05.04
LocalStorage  (0) 2023.05.04
리액트를 사용하는 이유  (0) 2023.04.17
Styled Component  (0) 2023.04.16
패키지 매니저 (npm, pnpm)  (0) 2023.04.13