'반응'에서 가져오기 반응이 없습니다. 이유는 다음과 같습니다!

정보 출처: The React Docs

그래서 나는 당신이 이 포스트를 읽고 있다면 아마도 당신이 반응 개발자이거나 야심 찬 반응 개발자일 것이라고 가정합니다. 당신이 위의 질문 중 어떤 것인지는 중요하지 않습니다. 반응으로 작업하는 동안 자신 안에서 만날 수 있는 질문입니다.

Now, what triggered me to write this blog post is depicted in the screenshot below and further explained below the screenshot. Let's uncover this mystery together.





보시다시피 React가 작동하지 않는 한 줄은 이제 선언된 것으로 취급되지만 읽히지 않거나 다른 말로 사용되지 않습니다.
예 여러분, 저는 import React from "react";에 대해 이야기하고 있습니다.

아마도 무언가가 변경되었을 수 있으므로 무엇이 그것에 대한 가능성이 될 수 있습니다. 이 새로운 경고는 필요하지 않은 경우에도 항상 가져오기React를 수행했기 때문에 현재 의미가 있습니다.

항상 그렇듯이 게시물을 첫 번째 질문으로 나누어 보겠습니다.

"react"에서 React를 가져오는 이유는 무엇입니까? ?



As I had already assumed that you're a react developer so I also assume that you know that React uses JSX.



그러나 브라우저는 JSX를 이해하지 못하기 때문에 브라우저가 이해할 수 있는 것으로 변환되어야 하는데, 바로 JavaScript이며, 이러한 JSX의 JS 변환은 Babel와 같은 컴파일러 덕분에 가능했습니다.

이제 우리는 이미 2020년을 넘었고 React 17은 새로운 기능을 도입한 것이 아니라 한 가지입니다. 이것이 우리의 질문에 답하는 열쇠입니다. 당신은 무엇을 짐작할 수 있습니까 ??

The support for a New Version Of JSX Transform.
I say it again.
The support for a New Version Of JSX Transform.



이제 두 개의 JSX 변환이 있습니다. Old와 New는 당연합니다.

그래서 우리가 하기 전에:

import React from 'react';

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


이전 JSX 변환은 다음을 수행하는 데 사용되었습니다.

import React from 'react';

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


JSX는 React.createElement로 컴파일되었으므로 React가 범위에서 사용 가능해야 했습니다.

Finally, one question is now answered.



그러나 실제로 원래 질문이 남아 있습니다. 새로운 JSX 변환에서 변경된 사항은 JSX 변환을 위해 React를 가져오지 않아도 '괜찮음'입니다.



Now to import React so that it can be in the scope and just only because React.createElement can be called is not a perfect choice.



이 부분과 몇 가지 다른 문제performance improvements and simplifications(여기서는 논의하지 않음)를 해결하기 위해 React는 Babel과 협력하여 새로운 JSX 변환 버전을 구현했습니다.

React는 Babel과 같은 컴파일러에서만 사용할 수 있도록 React 패키지에 두 개의 새로운 진입점을 추가하여 React17에서 몇 가지 변경 사항을 적용했습니다.

이제 Babel이 JSX 변환을 수행하는 데 사용하는 이 두 개의 새로운 진입점을 사용할 수 있으므로 React.createElement를 통해 JSX 변환을 수행할 필요가 더 이상 필요하지 않습니다.

따라서 여러분, React 버전이 16보다 큰 경우 더 이상 수행할 필요가 없습니다import React from "react".

PS: If you're on older version of React such as React 16 or 15 or even 0 then there's a good news for you. React has released React 0.14.0, React 15.7.0, and React 0.14.10 for people who are still on the older major versions.



이제 최신 JSX 변환을 사용하기 위해 필요한 것은 최신 버전과 Babel과 같은 지원되는 컴파일러뿐입니다.

이 글을 읽으면서 잠시나마 궁금증이 풀리셨길 바랍니다. 그동안 내 다른 게시물을 확인할 수 있습니다.

호기심 많은 독자로 변신해 행복합니다.
좋은 하루 보내세요.

좋은 웹페이지 즐겨찾기