React DOM 컴포넌트

React는 브라우저에 내장된 모든 HTMLSVG를 지원합니다.


공통 컴포넌트

브라우저에 내장된 모든 컴포넌트는 일부 props와 이벤트를 지원합니다.

refdangerouslySetInnerHTML같은 React 고유의 props를 포함합니다.


폼 컴포넌트

다음과 같은 브라우저에 내장된 컴포넌트는 사용자 입력을 받습니다.

value 프로퍼티를 전달하면 제어 할 수 있기 때문에 React에서 특별합니다.


Resource and Metadata Components

다음 브라우저 컴포넌트들을 사용하면 외부 리소스를 로드하거나 메타데이터로 문서에 주석을 달 수 있습니다:

위의 컴포넌트들은 React 에서 특별하게 다뤄집니다. React 에서는 위의 컴포넌트들을 document head 내부에 렌더하고, 리소스가 로딩 될 동안 일시 중단하고, 각 특정 구성 요소의 참조 페이지에 설명된 다른 동작을 시행합니다.


모든 HTML 컴포넌트

React는 브라우저에 내장된 모든 HTML 컴포넌트를 지원합니다. 이는 다음과 같은 컴포넌트를 포함합니다.

중요합니다!

DOM 표준과 유사하게 React는 프로퍼티에 캐멀 케이스 표기법을 사용합니다. 예를 들어 tabindex 대신 tabIndex로 작성합니다. 온라인 변환기를 사용하여 기존 HTML을 JSX로 변환할 수 있습니다.


커스텀 HTML 엘리먼트

<my-element>같이 대시가 포함된 태그를 렌더링하면 React는 커스텀 HTML 엘리먼트를 렌더링한다고 가정합니다. React에서 커스텀 엘리먼트를 렌더링하는 방법은 브라우저 내장 태그를 렌더링하는 방법과 다릅니다.

  • 모든 커스텀 엘리먼트 props는 문자열로 직렬화되며 항상 어트리뷰트를 사용하여 설정됩니다.
  • 커스텀 엘리먼트는 class 대신 className을 사용하고 for 대신 htmlFor를 사용합니다.

is 어트리뷰트를 사용하여 브라우저 내장 HTML 엘리먼트를 렌더링하면 커스텀 엘리먼트로 취급됩니다.

중요합니다!

향후 React 버전에는 커스텀 엘리먼트에 대한 더 포괄적인 지원이 제공될 예정입니다.

React package를 최신 실험 버전으로 업그레이드하여 사용해 볼 수 있습니다.

  • react@experimental
  • react-dom@experimental

React 실험 버전은 버그가 있을 수 있습니다. 프로덕션 환경에서 사용하지 마세요.


모든 SVG 컴포넌트

React는 브라우저에 내장된 모든 SVG 엘리먼트를 지원합니다. 이는 다음과 같은 것을 포함합니다.

중요합니다!

DOM 표준과 유사하게 React는 프로퍼티에 캐멀 케이스 표기법을 사용합니다. 예를 들어 tabindex 대신 tabIndex를 작성합니다. 온라인 변환기를 사용하여 기존 SVG를 JSX로 변환할 수 있습니다.

네임스페이스 어트리뷰트 또한 콜론 없이 작성해야 합니다.

  • xlink:actuate 대신 xlinkActuate
  • xlink:arcrole 대신 xlinkArcrole
  • xlink:href 대신 xlinkHref
  • xlink:role 대신 xlinkRole
  • xlink:show 대신 xlinkShow
  • xlink:title 대신 xlinkTitle
  • xlink:type 대신 xlinkType
  • xml:base 대신 xmlBase
  • xml:lang 대신 xmlLang
  • xml:space 대신 xmlSpace
  • xmlns:xlink 대신 xmlnsXlink