Код Читати оригінал на InfoQ 2 хв читання 0

Без React і бандлерів: чому бета-версія Remix 3 розгнівала

За даними видання InfoQ, розробники популярного фулстек-фреймворку Remix оголосили про вихід бета-прев'ю Remix 3, який кардинально змінює архітектурну філософію проєкту. Замість чергової еволюції екосистеми React команда Shopify пішла на радикальний крок — повну відмову від рушія React і перехід на чисті веб-стандарти та форкнутий Preact. Таке рішення обіцяє кардинальне спрощення роботи серверного коду, але водночас ставить спільноту перед викликом незворотної міграції.

#Remix #React #Preact #JavaScript #веб-розробка
Логотип фреймворку Remix 3 на тлі програмного коду
Логотип фреймворку Remix 3 на тлі програмного коду · Джерело зображення: InfoQ

Повне перезавантаження: фреймворк виходить зі складу екосистеми React

Команда розробників під керівництвом Майкла Джексона презентувала публічний бета-прототип Remix 3 (поточна версія v3.0.0-beta.5), який позиціонується не просто як оновлення роутера, а як повноцінна автономна платформа. Відтепер фреймворк об'єднує маршрутизацію, обробку запитів, проміжні шари (middleware), сесії, роботу з даними та компоненти інтерфейсу під єдиним пакетом remix.

Головною несподіванкою релізу стала повна відмова від рантайму React. Для рендерингу інтерфейсу розробники використали форкнутий Preact з імперативною моделлю оновлення стану, де за сповіщення про зміни відповідає явний виклик this.update() замість звичних хуків.

Веб-стандарти замість бандлерів та серверний контроль запитів

Архітектура Remix 3 базується на припущенні, що джерелом істини має бути безпосередньо веб-рантайм, а не збирач бандлів. Усі маршрути тепер описуються через стандартний Fetch API, а контролери повертають нативні об'єкти Response.

Серед ключових технічних інновацій бета-версії варто виділити такі рішення:

  • Серверний UI через фрейми: завантаження та оновлення серверних фрагментів виконується через незалежні елементи з атрибутом src, що нагадує підхід HTMX.
  • Стандартне скасування: асинхронні операції та запити скасовуються за допомогою нативних сигналів AbortController.
  • Компіляція асетів: рантайм самостійно роздає статичні файли без специфічної семантики для import.

Реакція спільноти: захоплення залізобетонною простотою та побоювання перед занепадом

Спільнота веб-розробників зустріла оновлення неоднозначно. Частина інженерів назвала Remix 3 поверненням до прагматичного кодингу, відзначаючи, що спрощена модель нативної роботи з Fetch API ідеально підходить для згенерованого AI-коду. Зокрема, розробник Алекс Котлярський у своєму блозі охарактеризував новий підхід як «варіант того, чим насправді мав би бути Next.js».

Водночас на майданчиках Reddit та Hacker News вибухнула хвиля критики через відсутність зворотної сумісності. Оскільки Remix 3 повністю відмовляється від React, існуючі проєкти на Remix 2 не зможуть просто оновити залежності — їм пропонується мігрувати на React Router v7, тоді як Remix 3 є фактично новим фреймворком з нуля.

Фінальний вибір: ризикована ставка Shopify на стандарти Web API

Радикальний поворот Remix знаменує новий етап у протистоянні фулстек-фреймворків. Віддаючи перевагу нативним Web API та імперативній простоті над складними абстракціями React, розробники роблять ставку на довгострокову стабільність коду та продуктивність рантайму, незважаючи на неминучу втрату частини існуючої бази користувачів.

Контекст для України

Для української IT-галузі, де розробка на React та Next.js становить значну частку аутсорс- та продуктового портфелів, реліз Remix 3 створює нову інженерну дилему. Більшість вітчизняних команд, які використовували Remix 2 у комерційних проєктах для західних клієнтів, будуть змушені залишитися на React Router v7 або повністю переписувати кодову базу. Водночас для українських аутстаф-фахівців з'являється попит на глибоке знання нативних Web API та Fetch-стандартів без прив'язки до традиційних React-хуків. Витрати на перенавчання розробників та рефакторинг існуючих сервісів можуть тимчасово сповільнити міграцію на нову версію в українських компаніях.

Часті запитання

Чому Remix 3 відмовився від використання React?
Розробники вирішили позбутися складних абстракцій Virtual DOM і хуків на користь нативних веб-стандартів Fetch API та вищої швидкості рантайму, використавши спрощену імперативну модель на базі Preact.
Як оновити існуючий проєкт з Remix 2 до Remix 3?
Прямого автоматичного оновлення немає через відсутність сумісності з React. Розробникам існуючих застосунків пропонується мігрувати на React Router v7 або повністю переписати проєкт під нову архітектуру Remix 3.
Telegram

Свіжі новини у нашому Telegram

Отримуйте миттєві сповіщення про нові публікації в рубриці «Код»

@procodeandevenmore