핵심 반응 개념: JSX
10103 단어 reactcodenewbiejavascriptbeginners
DOM에 아직 존재하지 않는 요소를 만들고 ID가 "root"인 div에 추가하려고 한다고 가정해 보겠습니다.
그러면 이것이 우리가 바닐라 자바스크립트에서 할 일입니다:
HTML:
<body>
<div id="root"></div>
</body>
자바스크립트:
const root = document.getElementById('root')
const h1 = document.createElement("h1")
h1.innerHTML = "Hello World"
root.appendChild(h1)
React에는 JSX라는 고유한 구문이 있어 위와 같이 긴 코드를 작성하는 데 도움이 됩니다.
JSX 란 무엇입니까?
JSX은 JavaScript에 대한 구문 확장입니다.
Javascript 파일에서 UI와 Javascript 논리를 결합할 수 있습니다.
ReactDOM.render(<h1>Hello World</h1>, document.getElementById("root"))
위의 예에서 우리는 Javascript의 메소드 내부에 <h1>
태그를 가지고 있습니다.
"ID가 <h1>
인 요소에서 root
렌더링"이라고 표시됩니다.
✏ 참고:
the previous post, 읽지 않았다면 ReactDOM.render()
작동 방식을 이해하십시오.
JSX는 HTML과 Javascript의 조합이므로 JSX를 번역하고 HTML을 페이지에 렌더링하려면 Babel이 필요합니다.
ReactDOM.render(<h1>Hello World</h1>, document.getElementById("root"))
CDN을 사용할 때 Babel의 CDN을 포함해야 합니다.
<script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
create-react-app
패키지를 사용할 때 Babel을 활성화하려면 React 라이브러리를 가져와야 합니다.import React from 'react'
✏ 참고:
선택 사항이지만 JSX 코드가 포함된 파일을
.jsx
대신 .js
로 저장할 수 있습니다(예: Header.jsx
). 그렇게 하면 파일에 JSX 코드가 있다는 것을 알 수 있습니다.JSX의 많은 요소
JSX에서 서로 옆에 하나 이상의 요소를 가질 수 없다는 점에 유의하는 것이 중요합니다.
렌더링할 요소가 많으면 해당 요소를 여는 태그와 닫는 태그 안에 래핑해야 합니다.
일부 개발자는 조각(
<></>
)을 사용하고 일부 개발자는 <div></div>
를 래퍼로 사용합니다.접근성을 위해 프래그먼트는 추가
<div>
를 제공하지 않으므로 프래그먼트를 사용하는 것이 좋습니다. 따라서 스크린 리더를 사용하는 사람들에게는 덜 혼란스럽습니다.const element = (
<>
<h1>Hello World</h1>
<p>How are you?</p>
</>
)
ReactDOM.render(element, document.getElementById("root"))
읽기 좋은 목적을 위해 반환 JSX 코드를
()
로 래핑하는 것이 일반적입니다.열기 및 닫기 래퍼 태그 내부에 있는 모든 항목을 children property 이라고 합니다.
닫는 태그
JSX는 HTML보다 더 엄격합니다.
JSX의 기본 규칙 중 하나는 모든 요소에 닫는 태그가 있어야 한다는 것입니다.
<input>
, <img>
, <br>
, <hr>
등과 같은 HTML 태그를 생각해 보십시오.JSX에서는 해당 태그를 닫아야 합니다. 그렇지 않으면 구문 오류가 발생합니다.
const element = (
<>
<h1>Hello World</h1>
<br />
<p>How are you?</p>
<input type="text" placeholder="Type your message" />
<button>Submit</button>
</>
)
ReactDOM.render(element, document.getElementById("root"))
JSX에 자바스크립트 포함
이전 예에서 우리는 머리글과 단락을 하드코딩했습니다.
값을 동적으로 변경하려면 어떻게 해야 할까요?
내부에 Javascript를 작성하면
{}
Javascript 기능과 메소드를 실행할 수 있습니다.우리는 그것을 자바스크립트와 HTML 사이의 구분자로 볼 수 있습니다.
const title = "Random Number"
function randomNum() {
return Math.floor((Math.random() * 10) + 1)
}
const myNum = (
<div>
<h1>{title}</h1>
<h2>My number is: {randomNum()}</h2>
</div>
)
ReactDOM.render(myNum, document.getElementById("root"))
이제 제목을 변경하면
<h1>
가 업데이트됩니다. 그리고 페이지를 새로 고칠 때마다 임의의 숫자가 생성됩니다.✏ 중요 참고 사항:
{}
안에 들어오는 것은 무엇이든 Javascript expression 이어야 합니다.결론
<p></p>
. <input />
. <></>
또는 <div></div>
{}
JSX에서 Javascript 논리를 사용할 수 있습니다. 그리고 내부 로직{}
은 자바스크립트 표현식이어야 합니다. 읽어 주셔서 감사합니다!
마지막으로 에서 저를 찾을 수 있습니다. 연결하자! 😊
Reference
이 문제에 관하여(핵심 반응 개념: JSX), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/adiatiayu/core-react-concept-jsx-1f02텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)