<> Fragments? </>란?

2021. 12. 5. 17:08· Frontend/React
목차
  1. Fragments란?
  2. JSX Fragment Syntax
  3. keyed Fragment
  4. 지원 사양
  5. 출처
728x90

<> Fragments? </>란?

React 16.2부 터 Fragements를 지원해 DOM에 노드를 추가하지 않고 자식 목록을 그룹화 할 수 있습니다.

render() {
  return (
    <>
      <ChildA />
      <ChildB />
      <ChildC />
    </>
  );
}

Fragments란?

일반적으로 자식 목록을 반환하는 용도로 사용합니다.

이전에는 아래와 같이 div 또는 span 을 사용해 자식 요소를 래핑하였습니다.

render() {
  return (
    // Extraneous div element :(
    <div>
      Some text.
      <h2>A heading</h2>
      More text.
      <h2>Another heading</h2>
      Even more text.
    </div>
  );
}

위와 같은 방식에서 16.0 버전에서는 요소 배열을 반환하는 방식을 지원하기도 하였습니다.

render() {
 return [
  "Some text.",
  <h2 key="heading-1">A heading</h2>,
  "More text.",
  <h2 key="heading-2">Another heading</h2>,
  "Even more text."
 ];
}

그러나 이 방식이 불편한 점이 많이 나오게 됩니다.

  1. 자식들을 쉼표로 구분해야 합니다.
  2. React의 키 경고를 방지 하기 위해 키가 있어야 합니다.
  3. 문자열을 따옴표로 묶어야 합니다.
  4. 직관적이지 않습니다.

위와 같은 단점을 해결하기 위해 Fragments가 나오게 되었습니다.

render() {
  return (
    <Fragment>
      Some text.
      <h2>A heading</h2>
      More text.
      <h2>Another heading</h2>
      Even more text.
    </Fragment>
  );
}

JSX Fragment Syntax

Fragment를 선언하기 보다는 슈가를 제공합니다.

render() {
  return (
    <>
      Some text.
      <h2>A heading</h2>
      More text.
      <h2>Another heading</h2>
      Even more text.
    </>
  );
}

실제 요소를 추가하지 않는다 라는 의미를 담기 위해 <></> 방식을 사용하였습니다.

keyed Fragment

<></> 는 키 속성을 포함하고 있지 않습니다. 키 속성을 사용하기 위해서는 Fragment 를 직접 사용하여야 합니다.

render() {
  return (
    <>
      Some text.
      <h2>A heading</h2>
      More text.
      <h2>Another heading</h2>
      Even more text.
    </>
  );
}

지원 사양

  1. Babel v7.9.9-beta.31 이상
  2. Typescript 2.6.2
  3. flow-bin 0.59
  4. Prettier 1.9
  5. EsLint 3.x

출처

React v16.2.0: Improved Support for Fragments

728x90
728x90
저작자표시 비영리 (새창열림)

'Frontend > React' 카테고리의 다른 글

React에 StoryBook을 입혀보자.  (0) 2022.07.10
10 JavaScript concepts for React beginners(React 초보자를 위한 10가지 JavaScript 개념)  (0) 2022.04.17
React의 defaultValue vs value  (0) 2022.01.16
  1. Fragments란?
  2. JSX Fragment Syntax
  3. keyed Fragment
  4. 지원 사양
  5. 출처
'Frontend/React' 카테고리의 다른 글
  • React에 StoryBook을 입혀보자.
  • 10 JavaScript concepts for React beginners(React 초보자를 위한 10가지 JavaScript 개념)
  • React의 defaultValue vs value
Seyun(Marco)
Seyun(Marco)
개발, PO, PM, 기획과 관련된 서비스 관련 업무에 관심이 있습니다. 또한 성장,교육과 관련된 주제에 대해서도 관심이 많습니다. 티타임을 좋아하는 사람으로써, 혹시 티타임에 관심이 있으신 분은 ksy90101@gmail.com로 메일 보내주시면 감사하겠습니다 :) 과제를 제공해주고 피드백을 주는 서비스를 오픈하였습니다. 관심있으신 분들은 https://jobskill.notion.site/ 해당 사이트를 참고해주세요.
Enthusiastically, Steady, Slowly개발, PO, PM, 기획과 관련된 서비스 관련 업무에 관심이 있습니다. 또한 성장,교육과 관련된 주제에 대해서도 관심이 많습니다. 티타임을 좋아하는 사람으로써, 혹시 티타임에 관심이 있으신 분은 ksy90101@gmail.com로 메일 보내주시면 감사하겠습니다 :) 과제를 제공해주고 피드백을 주는 서비스를 오픈하였습니다. 관심있으신 분들은 https://jobskill.notion.site/ 해당 사이트를 참고해주세요.
250x250
Seyun(Marco)
Enthusiastically, Steady, Slowly
Seyun(Marco)
전체
오늘
어제
  • 분류 전체보기 (259)
    • Common (31)
      • ComputerScience (10)
      • Web (9)
      • Git (1)
      • 세미나 (8)
      • Testing (3)
    • Backend (130)
      • Java (35)
      • Kotlin (3)
      • Spring (26)
      • Ruby (11)
      • RubyOnRails (18)
      • Python (1)
      • Django (3)
      • Infra (3)
      • DataBase (9)
      • SQL (21)
    • Frontend (30)
      • HTML&CSS (1)
      • JavaScript (16)
      • TypeScript (1)
      • Vue (5)
      • Nuxt.js (3)
      • React (4)
    • Book (30)
      • 이펙티브 자바 3판 (9)
    • Lecture (26)
      • [인프런] Vue.js 시작하기 - Age of .. (14)
      • [Tacademy] JPA 프로그래밍 기본기 다지.. (8)
    • 회고 (7)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • RESTful
  • 우아콘
  • Nuxt3
  • JUnit
  • JavaScriprt
  • 개발문화
  • JAR index
  • system.out.println
  • REST API
  • 멱등성
  • MVC
  • scanner
  • SCSS
  • ruby
  • java
  • locale
  • IBM Plex Sans
  • rubyonrails
  • System.out.printlin
  • Finalization

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
Seyun(Marco)
<> Fragments? </>란?
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.