Пишем свое React приложение без webpack и сторонних библиотек
Усі статті, обговорення, новини про Front-end — в одному місці. Підписуйтеся на телеграм-канал!
Привет!
Помню когда 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
Пока что у меня уже есть:
- Болванка SPА которую даже можно запустить;
- Самописный горячий релоад React компонентов;
- Примитивы для управления состоянием на основе Rx.js;
- Свой test runner;
- Свой router;
- Makefile который все это умеет запускать;
- 3 стрима где была написана большая часть этого кода.
(Routing c использованием TS типов)
Для меня это интересный эксперимент и первый опыт стриминга, который, надеюсь, станет хорошей мотивацией продолжать работать над проектом. Подписывайтесь на Twitch, YouTube и Twitter если хотите узнать про следующий стрим!
6 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів