Пишем свое React приложение без webpack и сторонних библиотек

Привет!

Помню когда React только появился, его продавали как простую библиотеку, «V в MVVM», рендеринг движок, вокруг которого мы сможем построить свое приложение так, как нам это нужно. Звучало это очень освежающе, особенно после нескольких проектов на Angular.JS.

С тех пор прошло много времени и сегодня у нас есть create-react-app и другие шаблоны. Единственный выбор который, как правило, делает фронтендер при старте нового React проекта — это какую выбрать библиотеку для управления состоянием? Дефолтный redux или что-то поновее?

Что же получается? Мы запускаем $ npx create-react-app my-app и потом большую часть времени занимаемся тем, что гуглим «как сделать X при помощи библиотеки Y».

В какой-то момент я подумал, что мне нравится React, но мне не нравится все, что я тащу в проект вместе с ним: webpack с его тоннами конфигов и плагинов, усложненные в погоне за всеми возможными фичами OSS библиотеки, протекающие абстракции, магию библиотек управления состоянием и т.д. Еще мне не нравится думать о глобальном потеплении каждый раз когда я делаю & rm -rf ./node-modules && yarn.

Я решил выбросить всё лишнее и вернуться к изначальной идее — сделать всё самому и так как мне будет удобно. И в процессе глубже изучить базовые технологии, вместо того чтобы разбираться в очередном фреймверке. В итоге я взял React, Rx.js как универсальный способ работы с событиями, TypeScript как основной язык и начал делать новый SPA с нуля, добавляя новые зависимости только если по-другому совсем тяжело.

Процесс я стримлю по-живому на Twitch (1-1.5 часа один-два раза в неделю, записи — на YouTube)

Пока что у меня уже есть:

  • Болванка SPА которую даже можно запустить;
  • Самописный горячий релоад React компонентов;
  • Примитивы для управления состоянием на основе Rx.js;
  • Свой test runner;
  • Свой router;
  • Makefile который все это умеет запускать;
  • 3 стрима где была написана большая часть этого кода.

(Routing c использованием TS типов)

Для меня это интересный эксперимент и первый опыт стриминга, который, надеюсь, станет хорошей мотивацией продолжать работать над проектом. Подписывайтесь на Twitch, YouTube и Twitter если хотите узнать про следующий стрим!

👍НравитсяПонравилось10
В избранноеВ избранном5
LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Ты лучше напиши вопросы для собеса на 12К :-)

Вопросы везде одинаковые ;) возможно добавлю на ютуб канал кроме записей стримов и немного видео на тему интервью, за ~10 лет опыта с обоих сторон есть что рассказать :)

В итоге я взял React, Rx.js как универсальный способ работы с событиями, TypeScript как основной язык и начал делать новый SPA с нуля, добавляя новые зависимости только если по-другому совсем тяжело.

а можно результат всего этого извращения, ссылочкой на репозиторий? Мне правда любопытно.

Подписаться на комментарии