๋ณธ๋ฌธ์œผ๋กœ ๋ฐ”๋กœ๊ฐ€๊ธฐ

 

JSX: Javascript XML

1) Javascript์—์„œ HTML์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๋ฆฌ์•กํŠธ๋งŒ์˜ ๋ฌธ๋ฒ•(syntax)์„ ๋งํ•œ๋‹ค.

2) html์•ˆ์— ๋ณ€์ˆ˜๋ฅผ ๋„ฃ์œผ๋ ค๋ฉด { }๋กœ ๊ฐ์‹ผ๋‹ค.

3) html์˜ attribute๋ฅผ ๋‹ค๋ฅด๊ฒŒ ์“ด๋‹ค. class๋Œ€์‹  className, onclick๋Œ€์‹  onClick ๋“ฑ

 

JSX๋Š” react ํŒŒ์ผ์˜ ํ™•์žฅ์ž๋กœ์จ์˜ ์ƒ์ง•์ ์ธ ์˜๋ฏธ๋ฅผ ๊ฐ–๋Š”๋‹ค.

ECMAScript๊ฐ€ Javascript์˜ ํ‘œ์ค€๊ณผ ๊ทœ๊ฒฉ๋“ฑ ๋ฌธ๋ฒ•์— ๊ด€ํ•ด ์‚ฌ์šฉํ•  ๋•Œ ์“ฐ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ, JSX๋„ JS์˜ ํŒŒ์ผ์— React ๋ผ์ด๋ธŒ๋Ÿฌ์˜ ํ‘œ์ค€์„ ๋”ฐ๋ฅธ๋‹ค๋Š” ์˜๋ฏธ๋กœ์จ ์‚ฌ์šฉ๋˜๋Š” ํ™•์žฅ์ž๋‹ค. ๋‹ค๋งŒ, ๋‘˜์„ ๊ตฌ๋ถ„์ง€์œผ๋ฉด์„œ ์–ป๋Š” ์ด์ต์ด ๋”ฑํžˆ ์—†๊ณ , JSํŒŒ์ผ์— JSX๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด, CRA์™€ ๊ฐ™์€ ํˆด์ฒด์ธ์— ์˜ํ•ด JS ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์ œ๋กœ ๊ตฌ๋ถ„ํ•ด์„œ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.

React 17๋ฒ„์ „ ๋ถ€ํ„ฐ๋Š” import React from "react"๋ฅผ ์ƒ๋žตํ•œ๋‹ค.

์˜ˆ์ „์ฝ”๋“œ

import React from 'react';

function App() {
  return <h1>Hello World</h1>;
}

Under the hood, the old JSX transform turns it into regular JavaScript:

import React from 'react';

function App() {
  return React.createElement('h1', null, 'Hello world');
}

๋ฐ”๋€ ์ฝ”๋“œ

function App() {
  return <h1>Hello World</h1>;
}
// Inserted by a compiler (don't import it yourself!)
import {jsx as _jsx} from 'react/jsx-runtime';

function App() {
  return _jsx('h1', { children: 'Hello world' });

import React from "react" ๋ฅผ ์“ฐ์ง€ ์•Š์•„๋„ ์ด์  , ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์•Œ์•„์„œ jsx์ฝ”๋“œ๋ฅผ js๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค.

์ด์   JSX์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด react๋ฅผ importํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค. ํ•˜์ง€๋งŒ hooks์ด๋‚˜, Componet๋“ฑ react๊ฐ€ ์ œ๊ณตํ•˜๋Š” exports๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„  ํ•„์š”ํ•˜๋‹ค.

 

JSX ๋ฌธ๋ฒ• ์‚ดํŽด๋ณด๊ธฐ

https://ko.reactjs.org/docs/jsx-in-depth.html

 

JSX ์ดํ•ดํ•˜๊ธฐ – React

A JavaScript library for building user interfaces

ko.reactjs.org

 

๋ฐ˜์‘ํ˜•