리액트의 빈 태그 <> </>

    

 React에서 빈 태그인 `<>`와 `</>`를 사용하는 것을 "Fragment"라고 부릅니다. Fragment는 여러 개의 자식 요소를 그룹화할 때 사용합니다. 일반적으로 여러 개의 요소를 반환할 때에는 그 요소들을 하나의 부모 요소로 묶어야 합니다. 그러나 때로는 불필요한 DOM 요소를 추가하고 싶지 않을 수 있습니다. 이런 경우 Fragment를 사용하면 유용합니다.


### 일반적인 예:


```jsx

function App() {

  return (

    <div>

      <Child1 />

      <Child2 />

      <Child3 />

    </div>

  );

}

```


위의 예에서는 모든 자식 컴포넌트가 `<div>` 태그로 묶여 있습니다. 이로 인해 불필요한 `<div>` 태그가 DOM에 추가됩니다.


### Fragment를 사용한 예:


```jsx

function App() {

  return (

    <>

      <Child1 />

      <Child2 />

      <Child3 />

    </>

  );

}

```


이 예에서는 `<>`와 `</>`로 자식 요소들을 묶었습니다. 이렇게 하면 불필요한 DOM 요소 없이 여러 자식 요소를 반환할 수 있습니다.


Fragment는 컴포넌트가 여러 개의 요소를 반환해야 하지만, 추가적인 DOM 요소를 만들고 싶지 않을 때 유용하게 사용됩니다.



React의 Fragment (`<> ... </>`)는 React 라이브러리의 특별한 기능입니다. 그러나 이와 유사한 개념은 다른 프론트엔드 라이브러리나 프레임워크에서도 종종 볼 수 있습니다.


- **Vue.js**: Vue에서는 `template` 태그를 사용하여 여러 루트 노드를 가진 컴포넌트를 만들 수 있습니다. 그러나 `template` 태그는 실제 DOM에 렌더링되지 않습니다.

  

  ```vue

  <template>

    <div>Item 1</div>

    <div>Item 2</div>

  </template>

  ```

  

- **Angular**: Angular에서는 `ng-container` 태그를 사용하여 렌더링되지 않는 컨테이너를 만들 수 있습니다.

  

  ```html

  <ng-container>

    <div>Item 1</div>

    <div>Item 2</div>

  </ng-container>

  ```


- **Svelte**: Svelte에서는 일반적으로 여러 루트 노드를 허용합니다, 따라서 별도의 빈 컨테이너가 필요하지 않습니다.


  ```svelte

  <div>Item 1</div>

  <div>Item 2</div>

  ```

  

이러한 기능은 프론트엔드 라이브러리나 프레임워크마다 다르게 구현되어 있을 수 있으므로, 사용하고 있는 라이브러리나 프레임워크의 문서를 참조하는 것이 좋습니다.



댓글

이 블로그의 인기 게시물

js 스트링에서 요소 갯수 세기

STUDY

javascript cheatsheet