Files
freeCodeCamp/guide/russian/react/component/index.md

82 lines
2.6 KiB
Markdown
Raw Normal View History

2018-10-12 16:00:59 -04:00
---
title: React - Components
localeTitle: React - Компоненты
2018-10-12 16:00:59 -04:00
---
## React - Компоненты
2018-10-12 16:00:59 -04:00
В библиотеке react.js создаваемые компоненты могут быть использованы повторно. Вы можете передавать различные значения в компоненты с помощью свойств - props, как приведено ниже:
2018-10-12 16:00:59 -04:00
```jsx
function Welcome(props) {
return <h1>Hello, {props.name}</h1>;
}
const element = <Welcome name="Faisal Arkan" />;
ReactDOM.render(
element,
document.getElementById('root')
);
```
В данном случае, значение свойства name - `name="Faisal Arkan"` будет сохранено в `{props.name}` из `function Welcome(props)` и возвратит компонент `<h1>Hello, Faisal Arkan</h1>`, который сохраняется в константу `elements`. Далее компонент отрисовывается с помощью вызова функции `ReactDOM.render(element, document.getElementById('root'));`. В данном случае `document.getElementById('root')`, элемент в котором вы хотите разместить и визуализировать созданный компонент.
2018-10-12 16:00:59 -04:00
### Другие способы объявления компонентов
Существует множество способов объявления компонентов при использовании библиотеки React.js, но выделяют два вида компонентов, компоненты **_без_состояния_** (stateless) и компоненты с **_состоянием_** (statefull) .
### Компоненты с состоянием
2018-10-12 16:00:59 -04:00
#### Компоненты с использованием классов
2018-10-12 16:00:59 -04:00
```jsx
class Cat extends React.Component {
constructor(props) {
super(props);
this.state = {
humor: 'happy'
}
}
render() {
return(
<div>
<h1>{this.props.name}</h1>
<p>
{this.props.color}
</p>
</div>
);
}
}
```
### Компоненты без состояния
2018-10-12 16:00:59 -04:00
#### Функциональные компоненты (стрелочные функции из ES6)
2018-10-12 16:00:59 -04:00
```jsx
const Cat = props => {
return (
<div>
<h1>{props.name}</h1>
<p>{props.color}</p>
</div>;
);
};
```
#### Неявно возвращаемые компоненты
2018-10-12 16:00:59 -04:00
```jsx
const Cat = props =>
<div>
<h1>{props.name}</h1>
<p>{props.color}</p>
</div>;
```