Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- html
- 웹개발
- 웹 성능
- JavaScript
- jsx
- 동적 웹 페이지
- dom
- 자바스크립트
- React
- 웹 성능 최적화
- 비동기프로그래밍
- fe
- tanStack Query
- css
- 컴포넌트
- 풀스택 개발
- #프론트엔드개발
- 프라미스체이닝
- 국제화(i18n)
- 비동기 요청 처리
- Promise
- 리액트 기초
- 퍼포먼스 최적화
- Node.js
- 코드리뷰
- 웹 개발
- 상태 관리 라이브러리
- 프론트엔드
- 패키지 스크립트
- 자바스크립트공부
Archives
- Today
- Total
sodol-dotcom
리액트에서 HTML을 자바스크립트처럼 쓰는 법: JSX 이해하기 본문
자바스크립트는 웹 페이지를 동적으로 만들 때 매우 중요한 역할을 하지만, HTML 태그 자체를 자바스크립트 코드로 직접 리턴할 수 없다. 그래서 JSX라는 특별한 문법을 사용하는데, 이것이 리액트에서 자바스크립트로 HTML과 비슷한 구문을 작성할 수 있게 도와준다.
자바스크립트가 HTML 태그를 직접 리턴할 수 없는 이유
https://sodol-dotcom.tistory.com/75
1. 기본 개념 이해:
- 자바스크립트는 프로그래밍 언어로, 웹 페이지에서 여러 작업을 처리하고 데이터를 다루는 데 주로 사용된다. 자바스크립트로 HTML 태그를 만들려면 주로 `document.createElement` 같은 메서드를 사용해야 한다. 하지만 이 방식은 복잡하고 코드가 길어질 수 있다.
- HTML은 웹 페이지를 구조화하는 언어로, `<div>`, `<h1>`, `<p>` 같은 태그를 사용하여 페이지에 텍스트나 이미지를 배치할 수 있다. 자바스크립트로 HTML을 다루려면 이런 태그들을 코드로 작성해야 한다.
2. JSX란?
JSX는 "JavaScript XML"의 줄임말로, 리액트에서 HTML과 비슷하게 생긴 코드를 자바스크립트 안에서 쉽게 쓸 수 있게 도와준다. 리액트는 컴포넌트 기반의 라이브러리로, 화면에 나타날 내용을 컴포넌트로 나누어 관리한다. 이때, HTML 태그를 쓰고 싶을 때 JSX를 사용한다.
3. 예시로 이해하기
- 자바스크립트로 HTML을 리턴하지 않는 이유:
자바스크립트는 HTML을 직접 리턴하지 못한다. 아래 코드에서 `<h1>` 태그는 자바스크립트 코드에서 바로 인식되지 않는다. 그래서 자바스크립트는 HTML을 리턴할 수 없다. 그래서 다음과 같은 코드는 오류를 발생시킨다.
function renderHTML() {
return <h1>Hello, World!</h1>; // 오류 발생
}
- JSX 사용 시:
JSX를 사용하면 위와 같은 문제를 해결할 수 있다. JSX를 쓰면 자바스크립트 안에서 HTML을 바로 작성하는 것 처럼 보이지만, 실제로는 자바스크립트 코드로 변환된다. (리액트가 JSX를 변환해 자바스크립트 함수로 바꿔주는 과정이다.)
function renderHTML() {
return <h1>Hello, World!</h1>; // JSX를 사용한 리턴
}
// 리액트는 이 JSX 코드를 자바스크립트 코드로 변환하여 브라우저가 이해할 수 있는 HTML로 바꿔준다.
// 그래서 위의 JSX 코드는 아래처럼 바뀌게 된다.
function renderHTML() {
return React.createElement('h1', null, 'Hello, World!');
}
4. JSX가 필요한 이유
- 코드가 더 직관적: JSX를 사용하면 마치 HTML을 작성하는 것처럼 코드를 쓸 수 있어 직관적이고 코드 가독성이 좋다.
- 컴포넌트 기반 개발: 리액트는 화면을 작은 컴포넌트로 나누어 개발하는 방식이므로, 각 컴포넌트에서 JSX를 사용하여 UI를 쉽게 정의할 수 있다.
- HTML과 자바스크립트 결합: JSX를 사용하면 자바스크립트 코드 안에서 HTML을 손쉽게 결합할 수 있어, 동적인 웹 페이지를 만들 때 편리하다.
5. 정리
- 자바스크립트는 HTML을 직접 리턴하지 못하지만, 리액트에서 JSX를 사용하면 HTML과 비슷한 문법을 자바스크립트 안에서 사용할 수 있다.
- JSX는 리액트가 브라우저에 표시될 UI를 정의하는 매우 강력한 도구이다.
- 리액트가 JSX를 자바스크립트 코드로 변환해 브라우저에 전달하기 때문에, 우리는 HTML 태그를 사용하는 것처럼 직관적으로 코드를 작성할 수 있다.
'Frameworks & Libraries > React' 카테고리의 다른 글
React 컴포넌트에서 props의 기본값을 설정하는 방법: defaultProps (0) | 2024.10.04 |
---|---|
Props 전달 과정(부모 컴포넌트에서 자식 컴포넌트로 데이터 전달하기) (1) | 2024.10.04 |
React에서 자식 컴포넌트가 props를 매개변수로 받는 이유 (0) | 2024.10.04 |
React에서 객체 전달을 위한 중괄호 사용법 이해하기 (0) | 2024.10.04 |
Outlet 컴포넌트 (0) | 2024.09.12 |