지난 주에 회의하다가 import React from "react";
가 왜 없어졌는지에 대한 얘기가 나왔었는데 정리를 좀 해야할 것 같다
import React from "react"
를 통해 불러와야한다import React from "react";
import ReactDOM from "react-dom";
function App() {
return <div>Hello World</div>;
}
const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);
import React from "react";
import ReactDOM from "react-dom";
function App() {
return React.createElement("hi, null, "Hello World");
}
const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);
<div>Hello World</div>
가 React.createElement
로 변환된 것을 볼 수가 있다
JSX 엘리먼트는 단지 React.createElement
를 호출하는 편리한 문법에 불과하기 때문에 웹팩으로 JSX를 트랜스파일링해서 React.createElement
를 이용한 코드로 변경해야한다
그래서 import React 가 반드시 필요했던 것
하지만 이 방식은 성능상에도 좋지 않다고 하는 것 같다
왜 성능에 좋지 않다고 하는지는 아직 이해가 안됐다
React 17버전 부터 React 내부적으로 JSX를 React 요소로 변환하는 작업을 거치기 때문에 생락이 가능하다
function App() {
return <div>Hello World</div>;
}
const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);
import { jsx as _jsx } from "react/jsx-runtime";
function App() {
return _jsx("div", { children: "Hello World" });
}
const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);