리액트 확장자명 헷갈리면 들어와! / .js, .jsx, .tsx

2024. 7. 24. 08:54·웹개발/REACT
728x90

확장자?

리액트는 .js, .jsx, .tsx 확장자를 사용해. 각각의 확장자는 어떤 차이가 있을까?

 

컴포넌트 파일의 확장자 형식

리액트에서 사용할 수 있는 자바스크립트 파일 형식은 크게 3가지야. 하나씩 살펴보자.


.js

이건 가장 일반적인 자바스크립트 파일 형식이야. 하지만 리액트에서는 바벨(Babel)과 같은 트랜스파일러 덕분에 .js 파일에서도 리액트 문법인 JSX를 사용할 수 있어. 보통 create-react-app 패키지로 생성한 리액트 프로젝트는 .js 파일을 기본으로 사용해.

리액트에서 바벨과 같은 역할을 하는 도구가 바로 react-scripts 패키지야. 이 패키지는 Create React App(CRA)에서 프로젝트 설정과 관리를 도와주는 스크립트 모음이야.

{
  "dependencies": {
    "react-scripts": "5.0.1"
  }
}

 


.jsx

JSX(Javascript XML)는 자바스크립트로 HTML 마크업을 편하게 작성하기 위해 페이스북 팀이 개발한 새로운 언어 형식이야. 리액트는 기본적으로 JSX 문법을 사용해. 그래서 확장자를 .js 대신에 .jsx로 사용하기도 해.

Vite 프로젝트에서는 @vitejs/plugin-react 패키지가 리액트에서 웹팩과 바벨의 역할을 해줘.

{
  "devDependencies": {
    "@vitejs/plugin-react": "4.2.1"
  }
}
더보기
더보기

🤚🏻마크업이 뭐야?!?

마크업이란, 문서나 데이터의 구조를 나타내기 위해 태그 등을 이용해 표시하는 방법을 말해. 쉽게 말해, 우리가 웹 페이지를 만들 때 HTML을 사용하는데, 이 HTML이 바로 마크업 언어의 한 종류야.


.tsx

TSX(Typescript XML)는 .jsx의 타입스크립트 버전이야. 타입스크립트를 사용하는 리액트 프로젝트에서는 .tsx 확장자를 사용해.

 

그러면 어떤 걸 사용하지?

.js나 .ts, .jsx, .tsx는 확장자의 의미에서 큰 차이가 없어. 하지만 JSX 문법이 순수한 자바스크립트 문법은 아니기 때문에, 확장자가 .js나 .ts로 끝나는 파일에 JSX를 작성하는 것에 대해 논란이 있어. Vite에서는 공식적으로 .jsx와 .tsx 형식의 파일을 권장하기 때문에 되도록이면 이 형식을 사용하는 게 좋아.

 

  • .js: 일반 자바스크립트 파일. 바벨 덕분에 JSX 사용 가능.
  • .jsx: JSX 문법을 사용하는 자바스크립트 파일.
  • .tsx: JSX 문법을 사용하는 타입스크립트 파일.

이제 리액트 프로젝트에서 어떤 확장자를 사용해야 할지 더 명확하게 이해할 수 있을 거야. 상황에 맞게 적절한 확장자를 선택해서 사용해보자!

728x90

'웹개발 > REACT' 카테고리의 다른 글

초보자도 쉽게 배우는 리액트 컴포넌트 작성 방법!  (0) 2024.07.25
리액트 컴포넌트, 아직도 클래스형 쓰는 사람? 이 글 읽고 손절하자!  (3) 2024.07.24
바벨과 웹팩, Vite의 역할: 리액트 개발에서의 필수 도구 이해하기  (2) 2024.07.23
돔(DOM)과 가상돔(Virtual DOM)  (0) 2024.07.23
React 리액트 왜 사용할까?  (0) 2024.07.23
'웹개발/REACT' 카테고리의 다른 글
  • 초보자도 쉽게 배우는 리액트 컴포넌트 작성 방법!
  • 리액트 컴포넌트, 아직도 클래스형 쓰는 사람? 이 글 읽고 손절하자!
  • 바벨과 웹팩, Vite의 역할: 리액트 개발에서의 필수 도구 이해하기
  • 돔(DOM)과 가상돔(Virtual DOM)
튼튼발자
튼튼발자
프론트엔드 개발자입니다. 헬스를 가끔해서인지 몸이 튼튼한거 같습니다. 그래서 튼튼한 개발자 => 튼튼발자입니다. 프론트엔드 및 관련 개발 내용 블로그 글로 정리해서 올려둡니다.
    250x250
  • 튼튼발자
    튼튼발자
    튼튼발자
  • 전체
    오늘
    어제
    • 분류 전체보기 (192)
      • 튼튼발자의 끄적끄적 (10)
      • 웹개발 (94)
        • HTML (5)
        • CSS (2)
        • JavaScript (40)
        • TypeScript (5)
        • REACT (22)
        • Next.js (13)
        • GIt (7)
      • 기타 (3)
        • 일상 (3)
      • 프로젝트 (27)
        • Componique: UI 컴포넌트 라이브러리 (18)
        • GitHub Profile Viewer (8)
        • 잇핏 (1)
      • 프론트엔드 개발자로 취업준비 (1)
        • 기술 면접 (7)
        • 코딩 테스트 준비하기 (0)
        • 자기소개서&지원서&이력서 (0)
      • 컴퓨터과학 (12)
        • 운영체제 (6)
        • 알고리즘 (6)
      • 전공 공부 (37)
        • AI(인공지능) (2)
        • 컴퓨터네트워크 (19)
        • 네트워크프로그래밍 (3)
        • SW소프트웨어응용설계 (7)
        • 클라우드컴퓨팅 (3)
        • 웹서비스프로그래밍 (3)
      • PT (0)
      • 취준일기 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    데이터전송
    프론트엔드개발
    프론트엔드
    네트워크
    JS
    react
    트랜스포트계층
    프로그래밍
    웹개발
    NextJs
    JavaScript
    코딩
    자바스크립트
    github
    ui컴포넌트
    상태관리
    tailwind
    componique
    TCP
    리액트
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
튼튼발자
리액트 확장자명 헷갈리면 들어와! / .js, .jsx, .tsx
상단으로

티스토리툴바