초보자를 위한 JSX(및 HTML과의 차이점)

JSX란?



JSX 또는 JavaScript XML은 구성 요소를 작성하는 데 사용되는 JavaScript의 확장입니다React.

예를 들어, 아래의 코드 스니펫은 JSX가 일반적으로 어떻게 생겼는지 보여줍니다.

const greet = <h1>Hello World</h1>;


따라서 JSX를 사용하면 Javascript와 HTML을 함께 작성할 수 있습니다. 그러나 HTML 및 Javascript와 달리 JSX는 브라우저에서 해석할 수 없으므로 Javascript로 변환하려면 컴파일러(Babel 또는 Webpack)가 필요합니다.

JSX를 사용하는 이유



가장 먼저 알아야 할 것은 JSX가 필수가 아니라는 것입니다. 그것 없이도 React 코드를 작성할 수 있습니다.

그럼 왜 사용합니까? 논리와 마크업을 혼합하는 이유는 무엇입니까? JSX는 구문 설탕입니다. 보다 쉽게 ​​읽고 표현할 수 있도록 설계되었습니다.

예: JSX 표현식을 고려하십시오.

<p color="red" shadowSize={2}>I'm a random sentence</p>


Babel에 의해 컴파일되어

React.createElement(
  "p",
  {color: 'red', shadowSize: 2},
  "I'm a random sentence"
)


나중 스 니펫은 분명히 덜 예쁘다 😀

JSX와 HTML의 차이점



1. 자동 닫힘 태그



HTML에서는 태그를 닫지 않고 자동으로 닫히는 태그를 작성하는 것이 좋습니다. <hr /><hr>일 수 있습니다. 이것은 JSX에서 허용되지 않습니다. 모든 태그는 닫아야 합니다.

또한 모든 태그는 자동으로 닫힐 수 있습니다. <div />

2. JavaScript 표현식 추가



중괄호 {...}를 사용하여 JavaScript를 JSX 마크업에 직접 추가할 수 있습니다.

{/* Output: Everybody knows 1 + 1 = 2 */}
<p> Everybody knows 1 + 1 = {1+1}<p>


따라서 <script> 태그 HTML이 필요하지 않습니다.

3. HTML 속성은 명명 규칙을 변경합니다.



JSX는 JavaScript에서 HTML을 작성하므로 JavaScript의 키워드인 classfor와 같은 특정 HTML 속성은 각각 classNamehmtlFor로 변경되어야 합니다. 명명 규칙에서 camelCasing 사용에 유의하십시오.

모든 JSX 속성은 camelCase 명명 규칙을 따릅니다. 따라서 background-colorbackgroundColor가 됩니다.

4. 인라인 CSS는 객체입니다.



HTML에서는 여는 태그에 인라인 CSS 스타일을 직접 추가할 수 있습니다. 그러나 JSX에서는 그렇지 않습니다. 여기에서 객체를 전달합니다.
예를 들어 이 HTML 스니펫을 고려하십시오.

<p style="color:red;font-size:14px">Hello there!</p>


JSX에서는 다음과 같이 작성할 수 있습니다.

cont Greet = function() {
  const myStyles = {
    color:"red";
    fontSize:"14px";
    }
  return <p style={myStyles}>Hello there!</p>;
}


또는

return <p style={{color:"red", fontSize:"14px"}}>Hello there!</p>;
}


현재 React를 배우고 있습니다. HTML 작성에서 JSX로 전환하는 동안 모든 사람이 알아야 할 몇 가지 주요 개념과 차이점을 발견했습니다. 이것은 내 노트를 문서화하는 것입니다. 도움이 되었기를 바랍니다 😊


헤더 이미지 크레딧: patterns.dev

좋은 웹페이지 즐겨찾기