[React] React.createElement 컴포넌트

2022. 9. 1. 17:29·🍞 FrontEnd/React

📌 createElement

React.createElement(
  type, // 태그 이름 문자열 | 리액트 컴포넌트 | React.Fragment
  [props], // 리액트 컴포넌트에 넣어주는 데이터 객체
  [...children] // 자식으로 넣어주는 요소들
);

 

📌 태그 이름 문자열 type

// <h1>type이 "태그 이름 문자열" 입니다.</h1>
ReactDOM.render(
  React.createElement("h1", null, `type이 "태그 이름 문자열" 입니다.`),
  document.querySelector("#root")
);​

 

📌 리액트 컴포넌트 type

// <Component></Component> => <Component /> => <p>type이 "리액트 컴포넌트" 입니다.</p>
const Component = () => {
  return React.createElement("p", null, `type이 "리액트 컴포넌트" 입니다.`);
};

ReactDOM.render(
  React.createElement(Component, null, null),
  document.querySelector("#root")
);

 

📌 React.Fragment

또 하나의 태그 없이 여러 개의 요소를 바로 넣을 수 있다.

ReactDOM.render(
  React.createElement(
    React.Fragment,
    null,
    `type이 "React Fragment" 입니다.`,
    `type이 "React Fragment" 입니다.`,
    `type이 "React Fragment" 입니다.`
  ),
  document.querySelector("#root")
);

 

📌 복잡한 리액트 엘리먼트 모임

createElement를 사용하게 되면 태그가 복잡해졌을 때 한계가 있지만, JSX를 통해 극복한다.

JSX 글 참고!

// <div><div><h1>주제</h1><ul><li>React</li><li>Vue</li></ul></div></div>
ReactDOM.render(
  React.createElement(
    "div",
    null,
    React.createElement(
      "div",
      null,
      React.createElement("h1", null, "주제"),
      React.createElement(
        "ul",
        null,
        React.createElement("li", null, "React"),
        React.createElement("li", null, "Vue")
      )
    )
  ),
  document.querySelector("#root")
);

 

'🍞 FrontEnd > React' 카테고리의 다른 글

[React] Component Lifecycle (v16.3 이전)  (0) 2022.09.01
[React] Event Handling  (0) 2022.09.01
[React] Props와 State, Render함수  (0) 2022.09.01
[React] JSX에 대해서  (0) 2022.09.01
[React] React 라이브러리  (2) 2022.09.01
'🍞 FrontEnd/React' 카테고리의 다른 글
  • [React] Event Handling
  • [React] Props와 State, Render함수
  • [React] JSX에 대해서
  • [React] React 라이브러리
박빵이
박빵이
2025년에도 갓생살기
  • 박빵이
    기억보다 기록
    박빵이
  • 전체
    오늘
    어제
    • 분류 전체보기 (337)
      • 🍞 FrontEnd (97)
        • HTML+CSS (4)
        • JavaScript (17)
        • TypeScript (4)
        • React (52)
        • Next.js (2)
        • Android (15)
      • 🍞 BackEnd (24)
        • Java (15)
        • Node.js (6)
        • Spring (1)
      • 🍞 Cloud & Infra (0)
        • AWS SAA (0)
        • Microsoft Azure (0)
      • 🍞 Algorithm (147)
        • C++ (4)
        • Baekjoon (41)
        • Programmers (97)
      • 🍞 Computer Science (18)
        • 운영체제 (1)
        • 데이터 통신 (6)
        • 네트워크 (6)
        • 데이터베이스 (1)
      • 🍞 대외활동 & 부트캠프 (42)
        • 삼성 청년 SW 아카데미 (1)
        • LG유플러스 유레카 (0)
        • 한국대학생IT경영학회 (1)
        • IT연합동아리 UMC (17)
        • 길벗 블로깅 멘토 (18)
        • IT연합동아리 피로그래밍 (3)
        • 개발 컨퍼런스 (2)
  • 블로그 메뉴

    • Admin
  • 링크

    • GitHub
  • 인기 글

  • 태그

    react
    JavaScript
    Java
    Front
    길벗 블로깅 멘토링
    level1
    길벗 블로깅 멘토
    위상정렬
    알고리즘
    umc
    C++
    level2
    유니온파인드
    프로그래머스
    map
    코딩자율학습
    안드로이드
    Android
    백준
    코틀린
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
박빵이
[React] React.createElement 컴포넌트
상단으로

티스토리툴바