Компонент класса — это класс Javascript, который расширяет класс React.Component. Компонент класса определяет методы, которые выполняются в течение жизненного цикла этого компонента.
Компонент класса React — это класс, который расширяет класс React.Component. Это позволяет нашему компоненту переопределять методы родительского класса. Один из родительских методов — render(), который нам нужно переопределить, чтобы отображать наши элементы в пользовательском интерфейсе.
Компонент класса имеет состояние и может иметь конструктор и состояние.
Конструктор — это особый вид функции, которая вызывается при инициализации компонента. Мы определяем конструктор, написав constructor().
По правилу наследования вам нужно вызвать родительский конструктор, написав super() в дочернем конструкторе.
Конструктор используется для установки состояния класса. Состояние — это объект, который содержит свойства класса.
Пример
import React from 'react';
import ReactDOM from 'react-dom';
export default class Book extends React.Component {
constructor(props) {
super(props);
}
render() {
return <h1>This is a book</h1>
}
}
ReactDOM.render(<Book/>, document.getElementById('root'));
Компонент класса React с состоянием
Состояние используется для хранения данных в компоненте. Он изменчив по своей природе, поэтому каждый раз, когда его значение изменяется, компонент перерисовывается.
В приведенном ниже примере мы сохраняем две переменные состояния: автор и год. Доступ к ним можно получить через this.state.author и this.state.year соответственно.
import React from 'react';
import ReactDOM from 'react-dom';
export default class Book extends React.Component {
constructor(props) {
super(props);
this.state = {
author: 'Michael Jordan',
year: 2020
}
}
render() {
return <div>
<h1>This is a book</h1>
<h2>Author: {this.state.author}</h2>
<h2>Year: {this.state.year}</h2>
</div>
}
}
ReactDOM.render(<Book/>, document.getElementById('root'));
Выход

Компонент класса React с реквизитом
Реквизиты используются для передачи данных компоненту. Свойства компонентов похожи на аргументы функции. Они записываются так же, как атрибуты HTML-элемента.
this.props возвращает все реквизиты компоненту. В приведенном ниже примере index и author — это 2 реквизита, которые передаются компоненту Book (см. ReactDOM.render()), и доступ к ним осуществляется через this.props.index и this.props.author в render().
import React from 'react';
import ReactDOM from 'react-dom';
export default class Book extends React.Component {
constructor(props) {
super(props);
this.state = {
author: 'Michael Jordan',
year: 2020
}
}
render() {
return <div>
<h1>This is a book with index: {this.props.index}</h1>
<h2>Author: {this.props.author}</h2>
</div>
}
}
ReactDOM.render(<div>
<Book index={1} author={'Michael'}/>
<Book index={2} author={'John'}/>
</div>, document.getElementById('root'));
Выход

Надеюсь, что эта статья прояснит некоторые распространенные заблуждения начинающих программистов о свойствах и состоянии. Посмотрите эту публикацию, чтобы узнать еще больше интересных статей и статей, связанных с интервью.