Меню
Vue.js vs React: какой фреймворк выбрать

Vue.js vs React: какой фреймворк выбрать

За восемь лет на фронтенде — были у меня и уютные команды по двое человек, и здоровенные коллективы. Впахивал с легаси на jQuery, собирал SSR-порталы и запускал корпоративные админки. И вот почти каждый месяц мне прилетает вопрос: «Ну так что лучше — Vue или React?» На собеседованиях, в консультациях или когда CTO хочет услышать “правильное” мнение за 15 минут. Многие ждут волшебной формулы — бери то или это и живи спокойно. Спойлер: формулы нет. Но у меня есть сетка простых критериев — реально помогает принять решение быстро, без недели турниров ботанов в Slack.

Расскажу, какой путь я для себя выстроил.

Поверхность обманчива — разница в реактивности

Чаще всего спор начинается примерно так: “в React пишут на JSX, во Vue вся магия в шаблонах”. Давайте честно: это фасад. Для жизни проекта куда больше роль играют механики под капотом. Особенно, когда через год надо дебажить баг, про который никто уже не помнит.

В React всё построено вокруг иммутабельности. Каждый компонент — словно функция-штамповка, которую React пересобирает целиком при малейшем чихе в состоянии. Фреймворк не ведает, где реально изменилось что-то важное — он сравнивает свеженькое виртуальное дерево с прошлым (вообще-то довольно ресурсозатратный процесс). Отсюда растёт культ useMemo/useCallback/React.memo, избитые вопросы про лишние ререндеры (“почему у меня моргнула вся страница от одного input?”). Компиляторы становятся умнее — но сама «ментальная модель» программиста всё равно строится вокруг ссылок и зависимостей хуков.

Vue другую стратегию выбрал: на основе Proxy строит карту того, к