Create a React Component

Другой способ определить React-компонент - использовать синтаксис class ES6.

Подробней о классах смотрите в этом уроке

В следующем примере Kitten расширяет React.Component :

class Kitten extends React.Component {
  constructor(props) {
    super(props);
  }

render() { return ( <h1>Hi ); } }

Это создает класс ES6 Kitten , который расширяет React.Component класс. Таким образом, класс Kitten теперь имеет доступ ко многим полезным функциям React, таким как локальные состояния и привязки к жизненному циклу. Не беспокойтесь, если вы еще не знакомы с этими условиями, они будут рассмотрены более подробно в последующих задачах. Также обратите внимание, что класс Kitten имеет constructor определенный внутри него, который вызывает super() . Он использует super() для вызова конструктора родительского класса, в данном случае React.Component . Конструктор - это специальный метод, используемый при инициализации объектов, созданных с ключевым словом class . Это лучшая практика для индивидуального вызова компонента constructor с super , и передать props для обоих. Это гарантирует правильность инициализации компонента. Пока что знайте, что это стандарт для включения этого кода. Вскоре вы увидите другие варианты использования конструктора, а также props .

Замечание: Хоть здесь и сказано "Пока что знайте, что это стандарт для включения этого кода", все же в таком виде данный конструктор не имеет никакого смысла, ведь в нем просто происходит вызов родительского конструктора. Здесь нет никакой дополнительной логики. Более того, в эслинте есть отдельное правило, которое может ругаться на такой вызов, советуя убрать его вовсе. Тем не менее, в дальнейшем вы увидите примеры, где часть логики задается именно в конструкторе. А вот функция render - обязательная. Всякий реакт-компонент должен что-то возвращать, и делает он это именно в методе render.

MyComponent определен в редакторе кода с использованием синтаксиса класса. Завершите запись метода render чтобы он возвращал элемент div, содержащий h1 с текстом Hello React! ,