React 19 не появится в WordPress 7.1: проблемы с совместимостью плагинов оказались более сложными, чем предполагалось

Обновление до React 19 не появится в WordPress 7.1. После кратковременного его включения в Gutenberg разработчики выявили неожиданные проблемы с совместимостью старой и новой версии React, а также в способах его использования в плагинах. В результате изменение было отложено.

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

Соответственно, в WordPress 7.1 будет по-прежнему использоваться React 18.3.

Экспериментальный флаг в Gutenberg

В плагине Gutenberg (с версии 23.4) появился новый эксперимент, позволяющий включить React 19 на сайте. Он предназначен для проверки совместимости плагинов. Для активации эксперимента достаточно установить Gutenberg и поставить соответствующую галочку на странице Gutenberg Experiments (в разделе Settings › Gutenberg).

На какие ошибки стоит обратить внимание в процессе тестирования

Типичные ошибки плагинов:

  1. Встраивание кода react/jsx-runtime непосредственно в JS-код плагина вместо использования «внешнего» скрипта react-jsx-runtime, предоставляемого самим WordPress. Такое встраивание приводит к смешиванию React 18 (подключаемого) и React 19 (поставляемого с WordPress): они выполняются вместе и передают структуры данных, созданные под старой версией, в новую среду выполнения. Если бы все правильно встраивали свой JS, большинства проблем совместимости не возникло бы.
  2. Использование старых функций React, которые были удалены в React 19 (уже минимум 6 лет считались устаревшими). Строковые рефы, defaultProps для функциональных компонентов, устаревшие способы определения контекста… некоторые из них были полифилированы на уровне совместимости.

Ведется работа по автоматическому обнаружению этих проблем в рамках плагина Plugin Check.

Все желающие могут протестировать и обновить свои плагины, а также сообщить о проблемах в репозитории Gutenberg GitHub.

Источник: https://make.wordpress.org/core

Дмитрий/ автор статьи
CCO, Senior SEM/PPC Specialist, WordPress-энтузиаст, переводчик с английского и немецкого. Серый кардинал русскоязычного WP-комьюнити.
Блог про WordPress
Добавить комментарий

Получать новые комментарии по электронной почте.