Files
freeCodeCamp/guide/russian/react/fragments/index.md
Egor 346b0a7ce1 docs: update Russian translation for the whole React guide (#23636)
* docs: update translation for React guide in Russian

* fix: removed extra line before frontmatter block

* fix: removed extra line in frontmatter block

* fix: corrected frontmatter block

* fix: corrected localeTitle in frontmatter block

* Update index.md

* fix: corrected localeTitle for Installation

* Update index.md

* Update index.md
2018-11-22 22:49:48 +04:00

65 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: Fragments
localeTitle: Фрагменты
---
# Фрагменты
Фрагменты - это способ визуализации нескольких элементов без использования элемента-обертки.
При попытке визуализации элементов без закрывающего тега в JSX вы увидите сообщение об ошибке. `Adjacent JSX elements must be wrapped in an enclosing tag`.
Это связано с тем, что когда JSX транслирует код, он создает элементы с соответствующими именами тегов и не знает,
какое имя тега использовать, если найдено несколько элементов. Раньше частым решением этой проблемы было использование обертки div.
Тем не менее, в React 16-ой версии появилось дополнение `Fragment`, которое полностью заменяет предыдушее решение.
`Fragment` выполняет обертку, не добавляя ненужные div в DOM. Вы можете использовать его непосредственно из импорта React или деконструировать его:
```jsx
import React from 'react';
class MyComponent extends React.Component {
render(){
return (
<React.Fragment>
<div>I am an element!</div>
<button>I am another element</button>
</React.Fragment>
);
}
}
export default MyComponent;
```
```jsx
// Deconstructed
import React, { Component, Fragment } from 'react';
class MyComponent extends Component {
render(){
return (
<Fragment>
<div>I am an element!</div>
<button>I am another element</button>
</Fragment>
);
}
}
export default MyComponent;
```
React версия 16.2 упростил этот процесс далее, позволяя пустым тегам JSX интерпретироваться как фрагменты:
```jsx
return (
<>
<div>I am an element!</div>
<button>I am another element</button>
</>
);
```
#### Дополнительная информация:
* [React.Fragment (официальная документация)](https://reactjs.org/docs/react-api.html#reactfragment)
* [React v16.2.0: улучшенная поддержка фрагментов](https://reactjs.org/blog/2017/11/28/react-v16.2.0-fragment-support.html)