2018-10-12 16:00:59 -04:00
---
title: React - Components
2018-10-28 13:08:18 +03:00
localeTitle: React - Компоненты
2018-10-12 16:00:59 -04:00
---
2018-10-28 13:08:18 +03:00
## React - Компоненты
2018-10-12 16:00:59 -04:00
2018-10-28 13:08:18 +03:00
Компоненты могут повторно использоваться в React.js. Вы можете передать значение в компонент, как указано ниже:
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="Faisal Arkan"` даст значение в `{props.name}` из `function Welcome(props)` и возвращающего компонента, который дал значение по `name="Faisal Arkan"` , после чего реакция отобразит элемент в html.
### Другие способы объявления компонентов
2018-10-28 13:08:18 +03:00
Существует много способов объявления компонентов при использовании React.js, но есть два вида компонентов, компоненты **_б е з_** внутреннего **_с о с то яния и_** компоненты с **_с о с то яние м_** .
2018-10-12 16:00:59 -04:00
### Stateful
2018-10-28 13:08:18 +03: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-28 13:08:18 +03:00
### Компоненты без состояния
2018-10-12 16:00:59 -04:00
2018-10-28 13:08:18 +03: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-28 13:08:18 +03:00
#### Неявно возвращаемые компоненты
2018-10-12 16:00:59 -04:00
```jsx
const Cat = props =>
< div >
< h1 > {props.name}< / h1 >
< p > {props.color}< / p >
< / div > ;
2018-10-28 13:08:18 +03:00
```