План для React 18

8 червня 2021 року від Ендрю Кларка, Брайана Вона, Крістін Абернаті, Дена Абрамова, Рейчел Наборс, Ріка Хенлона, Себастьяна Маркбоге та Сета Вебстера


Команда React рада поділитися кількома оновленнями:

  1. Ми розпочали роботу над релізом React 18, який стане нашою наступною старшою версією.
  2. Ми створили робочу групу, щоб підготувати спільноту до поступового впровадження нових можливостей у React 18.
  3. Ми опублікували React 18 Alpha, щоб автори бібліотек могли спробувати її та надати відгуки.

Ці оновлення передусім призначено для супровідників сторонніх бібліотек. Якщо ви вивчаєте, викладаєте або використовуєте React для створення користувацьких застосунків, ви можете сміливо ігнорувати цю публікацію. Але ви можете стежити за обговореннями в робочій групі React 18, якщо вам цікаво!


Що нового у React 18

Коли React 18 буде випущено, він міститиме готові покращення (як-от автоматичне пакетування), нові API (як-от startTransition) та новий рендеринговий сервер потокового відео з вбудованою підтримкою React.lazy.

Ці можливості стали можливими завдяки новому механізму opt-in, який ми додаємо в React 18. Він називається "одночасний рендеринг" і дозволяє React готувати декілька версій інтерфейсу одночасно. Ця зміна здебільшого прихована, але вона відкриває нові можливості для покращення як реальної, так і відчутної продуктивності вашого застосунку.

Якщо ви слідкували за нашими дослідженнями майбутнього React (ми не очікуємо, що ви це робите!), ви могли чути про так званий "одночасний режим" або про те, що він може зламати ваш застосунок. У відповідь на ці відгуки спільноти ми переробили стратегію оновлення для поступового впровадження. Замість режиму "все або нічого", одночасний рендеринг буде ввімкнено лише для оновлень, викликаних однією з нових функцій. На практиці це означає, що ви зможете перейти на React 18 без переписування коду і спробувати нові можливості у власному темпі.

Стратегія поступового впровадження

Оскільки паралелізм у React 18 підтримується за замовчуванням, немає значних змін у поведінці компонентів, які б порушували стандартну роботу. Ви можете оновитися до React 18 з мінімальними змінами або взагалі без змін у коді вашого застосунку, з рівнем зусиль, порівнянним з типовим великим релізом React. Ґрунтуючись на нашому досвіді конвертації декількох застосунків на React 18, ми очікуємо, що багато користувачів зможуть оновитися протягом одного дня.

Ми успішно відвантажили одночасні функції для десятків тисяч компонентів у Facebook, і з нашого досвіду ми виявили, що більшість React-компонентів "просто працюють" без додаткових змін. Ми прагнемо забезпечити плавне оновлення для всієї спільноти, тому сьогодні ми оголошуємо про створення робочої групи React 18.

Робота зі спільнотою

У цьому релізі ми спробували дещо нове: Ми запросили групу експертів, розробників, авторів бібліотек та викладачів з усієї React-спільноти взяти участь у нашій Робочій групі React 18, щоб надати відгуки, поставити запитання та співпрацювати над релізом. Ми не змогли запросити всіх бажаючих до цієї початкової, невеликої групи, але якщо цей експеримент спрацює, ми сподіваємося, що в майбутньому їх буде більше!

Мета робочої групи React 18 - підготувати екосистему до плавного, поступового прийняття React 18 існуючими застосунками та бібліотеками. Робоча група розміщена на GitHub Discussions і доступна для загального читання. Члени робочої групи можуть залишати відгуки, ставити запитання та ділитися ідеями. Основна команда також використовуватиме репозиторій обговорень, щоб ділитися результатами наших досліджень. По мірі наближення стабільного релізу будь-яка важлива інформація також буде публікуватися в цьому блозі.

Для отримання додаткової інформації про оновлення до React 18 або додаткові ресурси про цей випуск дивіться Анонс React 18.

Доступ до робочої групи React 18

Кожен може прочитати обговорення в репозиторії Робочої групи React 18.

Оскільки ми очікуємо початкового сплеску інтересу до Робочої групи, лише запрошені учасники зможуть створювати або коментувати теми. Однак, теми повністю видимі для спільноти, тому всі мають доступ до однієї і тієї ж інформації. Ми вважаємо, що це хороший компроміс між створенням продуктивного середовища для членів робочої групи і збереженням прозорості для широкої спільноти.

Як завжди, ви можете надсилати повідомлення про проблеми, запитання та загальні відгуки у наш трекер релізів.

Як спробувати React 18 Alpha сьогодні

Нові альфи регулярно публікуються у npm за допомогою тегу @alpha. Ці випуски збираються з використанням останнього комміту до нашого основного сховища. Коли функцію або виправлення буде об'єднано, вона з'явиться у альфа-версії наступного робочого дня.

Між альфа-релізами можуть відбуватися значні зміни у поведінці або API. Будь ласка, пам'ятайте, що альфа-релізи не рекомендовано використовувати у виробничих програмах, орієнтованих на користувача.

Прогнозований графік релізу React 18

Ми не запланували конкретну дату релізу, але очікуємо, що знадобиться кілька місяців зворотного зв'язку та ітерацій, перш ніж React 18 буде готовий для більшості виробничих застосунків.

  • Бібліотека Альфа: Доступна сьогодні
  • Публічна бета-версія: Щонайменше кілька місяців
  • Кандидат на реліз (КР): Щонайменше через кілька тижнів після бета-версії
  • Загальна доступність: Щонайменше через кілька тижнів після RC

Більш детальну інформацію про запланований графік релізу можна знайти у Робочій групі. Ми публікуватимемо оновлення у цьому блозі, коли наблизимося до публічного релізу.