반응 JSX


JSX 란 무엇입니까?

JSX는 JavaScript XML의 약자입니다.

JSX를 사용하면 React에서 HTML을 작성할 수 있습니다.

JSX를 사용하면 React에서 HTML을 더 쉽게 작성하고 추가할 수 있습니다.


JSX 코딩

createElement()  JSX를 사용하면 JavaScript로 HTML 요소를 작성 하고 appendChild()메소드 없이 DOM에 배치할 수 있습니다.

JSX는 HTML 태그를 반응 요소로 변환합니다.

JSX를 사용할 필요는 없지만 JSX를 사용하면 React 애플리케이션을 더 쉽게 작성할 수 있습니다.

다음은 두 가지 예입니다. 첫 번째는 JSX를 사용하고 두 번째는 다음을 사용하지 않습니다.

실시예 1

JSX:

const myelement = <h1>I Love JSX!</h1>;

ReactDOM.render(myelement, document.getElementById('root'));

실시예 2

JSX 없이:

const myelement = React.createElement('h1', {}, 'I do not use JSX!');

ReactDOM.render(myelement, document.getElementById('root'));

첫 번째 예에서 볼 수 있듯이 JSX를 사용하면 JavaScript 코드 내에서 직접 HTML을 작성할 수 있습니다.

JSX는 ES6 기반 JavaScript 언어의 확장이며 런타임 시 일반 JavaScript로 변환됩니다.


w3schools CERTIFIED . 2022

인증을 받으세요!

React 모듈을 완료하고, 연습을 하고, 시험을 보고, w3schools 인증을 받으세요!!

$95 등록

JSX의 표현식

JSX를 사용하면 중괄호 안에 표현식을 작성할 수 있습니다 { }.

표현식은 React 변수, 속성 또는 기타 유효한 JavaScript 표현식일 수 있습니다. JSX는 표현식을 실행하고 결과를 반환합니다.

예시

표현식을 실행합니다 5 + 5.

const myelement = <h1>React is {5 + 5} times better with JSX</h1>;


큰 HTML 블록 삽입

여러 줄에 HTML을 작성하려면 HTML을 괄호 안에 넣으십시오.

예시

세 가지 목록 항목으로 목록을 만듭니다.

const myelement = (
  <ul>
    <li>Apples</li>
    <li>Bananas</li>
    <li>Cherries</li>
  </ul>
);


하나의 최상위 요소

HTML 코드는 하나 의 최상위 요소 로 래핑되어야 합니다 .

따라서 두 단락을 작성 하려면 요소와 같은 상위 요소 내부에 단락을 넣어야 합니다 div.

예시

하나의 DIV 요소 안에 두 단락을 감쌉니다.

const myelement = (
  <div>
    <p>I am a paragraph.</p>
    <p>I am a paragraph too.</p>
  </div>
);

HTML이 올바르지 않거나 HTML이 상위 요소를 놓치면 JSX에서 오류가 발생합니다.

또는 "조각"을 사용하여 여러 줄을 줄 바꿈할 수 있습니다. 이것은 불필요한 추가 노드를 DOM에 추가하는 것을 방지합니다.

조각은 빈 HTML 태그처럼 보입니다: <></>.

예시

조각 내에서 두 단락을 래핑합니다.

const myelement = (
  <>
    <p>I am a paragraph.</p>
    <p>I am a paragraph too.</p>
  </>
);


요소를 닫아야 합니다.

JSX는 XML 규칙을 따르므로 HTML 요소를 제대로 닫아야 합니다.

예시

다음으로 빈 요소 닫기/>

const myelement = <input type="text" />;

HTML이 제대로 닫히지 않으면 JSX에서 오류가 발생합니다.


속성 클래스 = className

class속성은 HTML에서 많이 사용되는 속성이지만 JSX는 JavaScript로 렌더링되고 키워드 class는 JavaScript에서 예약어이므로 JSX에서는 사용할 수 없습니다.

대신 속성 을 사용하십시오 className.

JSX는 이 문제를 className대신 사용하여 해결했습니다. JSX가 렌더링되면 className 속성을 class속성으로 변환합니다.

예시

JSX className대신 속성 사용 :class

const myelement = <h1 className="myclass">Hello World</h1>;


조건 - if 문

React는 if명령문을 지원하지만 JSX 내부 에서는 지원하지 않습니다.

JSX에서 조건문을 사용하려면 명령문을 JSX if 외부에 배치하거나 대신 삼항 표현식을 사용할 수 있습니다.

옵션 1:

ifJSX 코드 외부에 명령문 작성 :

예시

x10보다 작으면 "Hello"라고 쓰고 , 그렇지 않으면 "Goodbye"를 쓰세요.

const x = 5;
let text = "Goodbye";
if (x < 10) {
  text = "Hello";
}

const myelement = <h1>{text}</h1>;

옵션 2:

대신 삼항 표현식을 사용하십시오.

예시

x10보다 작으면 "Hello"라고 쓰고 , 그렇지 않으면 "Goodbye"를 쓰세요.

const x = 5;

const myelement = <h1>{(x) < 10 ? "Hello" : "Goodbye"}</h1>;

JSX 내부에 JavaScript 표현식을 포함하려면 JavaScript를 중괄호( {}.


연습으로 자신을 테스트하십시오

연습:

JSX를 사용하지 않고 <p> 요소를 렌더링합니다.

const paragraph = React.createElement(, {}, 'This is a paragraph without using JSX!');

ReactDOM.render(paragraph, document.getElementById('root'));