Жизненный цикл компонента

Монтаж

Эти методы вызываются, когда экземпляр компонента создается и вставляется в DOM:

  • constructor(): конструктор, в котором происходит начальная инициализация компонента

  • componentWillMount(): вызывается непосредственно перед рендерингом компонента

  • render(): рендеринг компонента

  • componentDidMount(): вызывается после рендеринга компонента. Здесь можно выполнять запросы к удаленным ресурсам

Обновление

Обновление может быть вызвано изменениями в props или state. Эти методы вызывается, когда компонент повторно отображается:

  • componentWillReceiveProps(nextProps): вызывается при обновлении объекта props. Новые значения этого объекта передаются в функции в качестве параметра. Как правило, в этой функции устанавливаются те свойства компонента, в том числе из this.state, которые зависят от значений из props.

  • shouldComponentUpdate(nextProps, nextState): вызывается каждый раз при обновлении объекта props или state. В качестве параметра передаются новый объект props и state. Эта функция должна возвращать true (надо делать обновление) или false (игнорировать обновление). По умолчанию возвращается true. Но если функция будет возвращать false, то тем самым мы отключим обновление компонента, а последующие функции не будут срабатывать.

  • componentWillUpdate(nextProps, nextState): вызывается перед обновлением компонента (если shouldComponentUpdate возвращает true)

  • render(): рендеринг компонента (если shouldComponentUpdate возвращает true)

  • componentDidUpdate(prevProps, prevState): вызывается сразу после обновления компонента (если shouldComponentUpdate возвращает true). В качестве параметров передаются старые значения объектов props и state.

Размонтирование

Этот метод вызывается, когда компонент удаляется из DOM:

  • componentWillUnmount()

Обработка ошибок

Этот метод вызывается при возникновении ошибки во время рендеринга, в методе жизненного цикла или в конструкторе любого дочернего компонента.

  • componentDidCatch(error, info)

results matching ""

    No results matching ""