Fragments

서성원·2024년 5월 19일
0

리액트

목록 보기
17/26
post-thumbnail

Fragments는 DOM에 별도의 노드를 추가하지 않고 여러 자식을 그룹화할 수 있다.

동기

class Table extends React.Component {
  render() {
    return (
      <table>
        <tr>
          <Columns />
        </tr>
      </table>
    );
  }
}

렌더링 된 HTML 유효하려면 Comlums 태그가 여러 td 엘리먼트만 반환해야한다.

class Columns extends React.Component {
  render() {
    return (
      <div>
        <td>Hello</td>
        <td>World</td>
      </div>
    );
  }
}

이렇게 부모 div로 자식을 감싸면 td는 직접적으로 tr의 자식이어야하는 HTML규칙으로 인해 렌더링이 유효하지 않게된다.

사용법

class Columns extends React.Component {
  render() {
    return (
      <React.Fragment>
        <td>Hello</td>
        <td>World</td>
      </React.Fragment>
    );
  }
}

단축문법

class Columns extends React.Component {
  render() {
    return (
      <>
        <td>Hello</td>
        <td>World</td>
      </>
    );
  }
}

key가 있는 Fragments

function Glossary(props) {
  return (
    <dl>
      {props.items.map(item => (
        // React는 `key`가 없으면 key warning을 발생합니다.
        <React.Fragment key={item.id}>
          <dt>{item.term}</dt>
          <dd>{item.description}</dd>
        </React.Fragment>
      ))}
    </dl>
  );
}

https://ko.legacy.reactjs.org/docs/fragments.html#short-syntax (자습서 정리)

profile
FrontEnd Developer

0개의 댓글

관련 채용 정보