리액트의 빈 태그 <> </>
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>
```
이러한 기능은 프론트엔드 라이브러리나 프레임워크마다 다르게 구현되어 있을 수 있으므로, 사용하고 있는 라이브러리나 프레임워크의 문서를 참조하는 것이 좋습니다.
댓글
댓글 쓰기