일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- accordian
- QueryClient
- createPortal
- 조건부스타일
- es6
- 리액트
- tailwindCSS
- parent padding
- twoarrow
- ignore padding
- 서초구보건소 #무료CPR교육
- transition
- vite
- Carousel
- 부모요소의 패딩 무시
- 문제해결
- BFC
- react
- 이즐 #ezl #욕나오는 #교통카드
- 함수형프로그래밍
- 화살표2개
- DOM
- 제어컴포넌트
- useQueryClient
- CustomHook
- 부모패딩
- alias설정
- ?? #null병합연산자
- BlockFormattingContext
- debouncing
Archives
- Today
- Total
프론트엔드 첫걸음
JSX와 Babel의 변환 과정 정리 본문
1. JSX는 JavaScript가 아니다
- JSX는 JavaScript 확장 문법으로, 브라우저가 직접 실행할 수 없다.
- 그래서 브라우저에서 사용하려면 **트랜스파일링(transpiling)**이 필요하다.
2. Babel이 하는 일
- Babel은 JSX를 JavaScript 코드로 변환해주는 트랜스파일러다.
- JSX를 기본적으로 React.createElement() 호출 형태로 변환한다.
예시
const vdom = <p>Hello</p>;
↓ Babel 변환 ↓
const vdom = React.createElement("p", null, "Hello");
3. @jsx 주석 지시어
- Babel은 JSX를 어떤 함수로 변환할지 지정할 수 있도록 @jsx 주석을 지원한다.
- 이걸 사용하면 React.createElement 대신 원하는 함수로 커스텀할 수 있다.
예시
/* @jsx createElement */
const vdom = <p>Hello</p>;
↓ Babel 변환 ↓
const vdom = createElement("p", null, "Hello");
4. import React from "react";
- React 17 이전에는 Babel이 JSX를 무조건 React.createElement(...)로 변환했기 때문에
→ 코드 안에서 React 변수를 사용하기 위해 반드시 import React from "react" 해야 했다.
예시 (React 16 기준)
import React from "react"; // 이게 없으면 에러
const element = <h1>Hello</h1>;
- React 17부터는 Babel이 자동으로 JSX 변환 함수 호출을 처리하도록 개선됨.
(import React~ 안해도됨)
'개발 공부 > React' 카테고리의 다른 글
[React Router] useBlocker 이해하기 (0) | 2025.03.03 |
---|---|
useLocation (0) | 2023.07.18 |
김민태 프론트엔드 강의 - javascript로 React 만들기 (0) | 2023.03.11 |
forEach(parent.appendChild.bind(parent)) 이해하기 (0) | 2023.03.03 |
[칼럼] React 컴포넌트를 커스텀 훅으로 제공하기 (0) | 2023.02.22 |