Зайдя на официальный сайт React я не сразу понял, что произошло.

Когда мы заходим на страницу документации React в раздел установки, мы можем увидеть различные предложенные варианты установки фреймворков React, а именно Next.js, Remix, Expo, Gatsby. Но при этом нет варианта установки самого React в чистом виде. Неужели React сдает позиции.

На самом деле это не так. Если присмотреться, то можно найти скрытую сноску с информацией о том, можно ли использовать React в чистом виде. Ниже я представлю перевод части данной сноски.

Вы определенно можете использовать React без фреймворка. Однако, если вы создаете новое приложение или сайт полностью с помощью React, мы рекомендуем использовать платформу.

И вот почему.

Даже если сначала вам не нужна маршрутизация или получение данных (data fetching), вы, скорее всего, потом заходите добавить необходимые для них библиотеки. По мере роста вашего Javascript приложения растет ваш код и вам придется выяснять, как разнести этот код для каждого роута по отдельности. Во время увеличения потребностей в получении данных вероятно придется столкнуться с проблемами водопадом между сервером и клиентом (server-client network waterfalls), что замедлит ваше приложение. Поскольку большинство пользователей из аудитории имеет плохие условия сетевого соединения и недорогие устройства, вам понадобится создать HTML с ранним отображением компонентов - либо на сервере, либо во время сборки. Изменение настроек для выполнения части кода на сервере или во время сборки может быть сложным.

. . . . . . .

Фреймворки React на этой странице решают подобные проблемы по умолчанию, без дополнительной работы с вашей стороны. Они позволяют вам начать очень экономно, а затем масштабировать ваше приложение в соответствии с вашими потребностями.

. . . . . . .

Если вы все еще не уверены, или ваше приложение имеет необычные ограничения, которые плохо обслуживаются этими фреймворками, и вы хотите развернуть свою собственную пользовательскую настройку, мы не можем остановить вас — дерзайте! Берите react и react-dom из npm, настраивайте свой пользовательский процесс сборки с помощью сборщика, такого как Vite или Parcel, и добавляйте другие инструменты по мере необходимости для маршрутизации, статической генерации или рендеринга на стороне сервера и многого другого.

Исходя из данной информации в принципе можно понять, что с React все в порядке. Просто разработчики говорят о том, что React - это библиотека, которая не имеет множества встроенных инструментов и лучше использовать какой-либо фреймворк, но при этом никто не перестает поддерживать и использовать React.

Но есть еще одна вещь, которую необходимо выяснить...

Где рекомендация create-react-app?

На данный момент на странице документации полностью исчезла информация о том, что мы можем использовать create-react-app. Даже в приведенной выше сноске говорится о том, что необходимо брать react, reac-dom, сборщик пакетов и настраивать под себя.

Также, если обратить внимание на репозиторий create-react-app, мы можем увидеть, что последний коммит был сделан 8 сентября.

В issue гитхаба уже начали появляться темы о том, что же происходит.

Пробежавшись по issue, я нашел ссылку на пост Reddit, в котором официальная команда React дала ссылку на более ранний issue с подробным описанием происходящего. Если вы хотите почитать, ссылку прикладываю ниже.

Ссылка

Если говорить кратко, о том, что говорится в ответе, то Create React App решал множество проблем, но временем происходила стагнация, многие начали подмечать, что приложения, созданные с использованием Create React App становятся медленнее альтернативных. При всем при этом Create React App сильно отстает в технологиях, например, не поддерживает SSR/SSG, которые, как говорит разработчик, более эффективны и для многих сайтов были бы предпочтительнее. Поэтому к React надо относиться именно как к библиотеке и по возможности использовать фреймворки, которых много и это хорошо.

На данный момент Create React App не соответствует цели быть лучшей утилитой для создания приложения. Поэтому разработчики видят несколько вариантов действий, которые можно предпринять:

1) Создать новый фреймворк с нуля, при этом переквалифицировать Create React App под него. На данный момент не считается целесообразным.

2) Отказаться от Create React App и поддерживать другой сложный шаблон для создания приложения с использованием Vite.

3) Уменьшить использование или вовсе упразднить Create React App и продвигать фреймворки. При этом говорится, что фреймворки будут предпочтительными, но не обязательными. Но при этом возникает проблема в виде отсутствия фирменного CLI шлюза, что будет плохо влиять на бренд.

4) Выбрать какой-либо фреймворк и использовать Create React App для создания приложения уже на основе этого фреймворка. Но тогда у других фреймворков возникнет проблема в плане конкуренции, а также все старые туториалы сразу перестанут работать.

5) Сделать Create React App лаунчером. Create React App будет предлагать список рекомендуемых фреймворков, а также возможность использовать классический подход создания приложения без фреймворка (но, возможно с Vite под капотом)

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

Заключение

В заключение хочу сказать, что Create React App скорее всего не умрет и им дальше можно будет пользоваться, но нас ждут перемены в использовании данной утилиты.

P.S. Надеюсь, статья была полезна и информативна. Если кто-то имеет более свежую информацию, я буду рад ее почитать.

Комментарии (7)


  1. Luchnik22
    00.00.0000 00:00

    Ещё там есть холивары в том как они управляли зависимости - одна сторона хотела запиненые зависимости другая "с крышечкой ^", и всем в не угодишь

    Ну и куча других споров в том "как правильно"


    1. idmx Автор
      00.00.0000 00:00

      Да, CRA в принципе холиварная вещь. Посмотрим, что по итогу они из него сделают


  1. nirom
    00.00.0000 00:00

    Удобная штука. Но я использовал её только, когда интенсивно изучал React, чтобы сосредоточиться именно на React. В продакшене - ни разу. И таких как я, думаю, большинство.


    1. idmx Автор
      00.00.0000 00:00

      Действительно большинство скорее всего использует уже свои настройки и сборщики. Но я лично точно встречал пару проектов в продавшене на CRA


  1. Assador
    00.00.0000 00:00
    +1

    Эх. Простите за крик души, но надо разрабов при приёме на работу заставлять на собеседовании в течение часа повторять скороговорку: «Фреймворк на фрейморке работал в фреймворке, но я под фреймворками фреймворкать не буду»! Скоро для console.log с десяток конкурирующих фреймворков напишут.


  1. alexei_ovsyannikov
    00.00.0000 00:00

    Не вижу ничего плохого в том, если CRA идейно умрет как полноценный инструмент запуск нового проекта. Пусть знакомит начинающих с миром Реакт, а дальше люди сами разбируться, что им использовать.


  1. john_samilin
    00.00.0000 00:00
    -1

    дело в том, что CRA - дерьмо собачье