У меня это в продакшене работает. И да, это решение под конкретные составные части, но что в них плохого, если они у всех? Могу добавить поддержку Koa, но Redux и Router то в каждом проекте почти. Хотите совсем production ready — обратите внимание на Next.JS и Electrode от Walmart Labs, подробности тут.
Eject? Вы шутите. Он же ничего не умеет особого, вам придётся кучу всего добавлять руками, причём в каждом новом проекте. Возьмите лучше тогда NextJS если нравится без конфигурации, или Electrode, там есть генератор, чтоб руками не писать и не копи-пастить. Статья же ведь именно об этом. Нельзя замыкаться на одном решении.
Ну например Electrode, вполне конкурент. Я его рассматриваю в статье со сравнением. Но и сам Next очень хорош, если ограничения не смущают. Только к CRA это не относится.
Этот пример не работает в случае с подстановками, я проверил первым делом. Next первый раз страницу загружает, а потом у него что то сбивается и вместо новых чанков будут приходить 404 ошибки. И текущую ссылку не подсветить, у них на это баг есть открытый. Для этого есть отдельные решения.
PostCSS плагины это все же не полная поддержка любых препроцессоров.
Это будет довольно мало что могущая структура, вы не находите? А ещё ее надо будет потом поддерживать, обновления накатывать. Оно того не стоит, вся прелесть CRA в режиме без конфига.
А зачем тогда Create React App, если делать eject? Проще уж с нуля самому все писать или пользоваться другим фреймворком. В статье об этом было замечание.
Он есть из коробки? Нет. Рассматривается исключительно стандартная поставка. Любые навороты сверху я лучше буду делать с полным контролем, зачем мне Create React App для этого? Или возьму другой фреймворк.
Добавлю еще кейс — логин страница сама по себе вполне может нуждаться в серверном рендеринге, если вы планируете показывать ее в WebView ваших мобильных или десктопных приложений. Там скорость загрузки и отображения критична.
Create React App это как раз вполне фреймворк, т.к. по определению это каркас или структура, облегчающая разработку. В более широком смысле — набор разноплановых библиотек особым образом связанных вместе. Уж точно не генератор кода, Yeoman — вот генератор. Реакт — не фреймворк, в этом Вы правы.
В сравнении с остальными — не дает. Конфиг вебпака же нельзя менять без eject, следовательно способов модификации довольно мало. Про форки и тд речь специально не идет, иначе бы пост раздулся раз так в 100. Так что упрощение сделано сознательно.
При клиентском рендеринге серверный HTML не затирается, а используется как каркас, затрется он только если контрольная сумма не сойдется (React проводит проверку на соответствие). Важна именно связка «серверный HTML + данные», потому как именно она обеспечивает работоспособность.
Никто в здравом уме не меняет DOM напрямую через jQuery или отладку. React сам прекрасно справляется с мутациями DOM. А для отладки есть Hot Reload, позволяющий сам код менять и видеть изменения сразу.
С моей стороны поддержка TS будет заключаться в удалении этой строки, потому как остальное зависит сугубо от конфигурации Babel и Webpack, а это вне ответственности библиотеки.
Да-да, я даже видел тред где говорилось, что это было большой ошибкой включать подобное в ядро. Однако вчера я смотрел в ветку 2.1 и там пока все присутствует… очень ждём :)
PostCSS плагины это все же не полная поддержка любых препроцессоров.
В остальном согласен.
В принципе, обновления Next.js будут примерно так же проходить, там довольно минималистичный API.
Никто в здравом уме не меняет DOM напрямую через jQuery или отладку. React сам прекрасно справляется с мутациями DOM. А для отладки есть Hot Reload, позволяющий сам код менять и видеть изменения сразу.