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