--- title: Functional Components vs Class Components localeTitle: Функциональные компоненты и компоненты класса --- ## Функциональные компоненты и компоненты класса В React есть в основном два компонента: * Функциональные компоненты * Компоненты класса ## Функциональные компоненты * Функциональные компоненты - это основные функции JavaScript. Они обычно являются функциями стрелок, но также могут быть созданы с помощью ключевого слова регулярной `function` . * Иногда они называются «немыми» или «без гражданства», поскольку они просто принимают данные и отображают их в той или иной форме; то есть они в основном отвечают за предоставление пользовательского интерфейса. * Реагирующие методы жизненного цикла (например, `componentDidMount` ) не могут использоваться в функциональных компонентах. * В функциональных компонентах не используется метод рендеринга. * Они в основном отвечают за пользовательский интерфейс и обычно являются только презентационными (например, компонент Button). * Функциональные компоненты могут принимать и использовать реквизиты. * Функциональные компоненты должны быть предпочтительными, если вам не нужно использовать состояние React. ```js import React from "react"; const Person = props => (

Hello, {props.name}

); export default Person; ``` ## Компоненты класса * Компоненты класса используют класс ES6 и расширяют класс `Component` в React. * Иногда они называются «умными» или «состояниями», поскольку они склонны реализовывать логику и состояние. * Методы жизненного цикла React могут использоваться внутри компонентов класса (например, `componentDidMount` ). * Вы передаете реквизиты до компонентов класса и `this.props` доступ к ним с помощью `this.props` ```js import React, { Component } from "react"; class Person extends Component { constructor(props){ super(props); this.state = { myState: true; } } render() { return (

Hello Person

); } } export default Person; ``` ## Больше информации * [Реагировать на компоненты](https://reactjs.org/docs/components-and-props.html) * [Функциональные компоненты класса vs](https://react.christmas/16) * [Функциональные компоненты Stateful vs без состояния](https://code.tutsplus.com/tutorials/stateful-vs-stateless-functional-components-in-react--cms-29541) * [Состояние и жизненный цикл](https://reactjs.org/docs/state-and-lifecycle.html)