После выхода крайней и достаточно революционной в плане добавления Composition API версии Vue 3.0 более чем три года назад, каких-либо серьезных изменений от команды Evan You в самом фреймворке больше не было. Только стандартные багфиксы, оптимизация и робкие попытки стать с TypeScript ближе. Основное внимание переключилось на экосистему - Vite, Nuxt, VitePress, Pinia и другие.
В то же время, отчетливо заметно масштабирование работы не вглубь, а вширь. Интересы команды уже давно явно выходят за пределы фреймворка.
Vite
Основной таран экосистемы - Vite. Его экспансия за пределы Vue проектов - уже свершившийся факт, достаточно посмотреть на статистику загрузки npm пакетов:
Vite как инструмент уже используется при разработке на других JavaScript фреймворках и чистом js. Его грандиозный успех привел к переключению команды Vue именно на него. На этот раз разработка пошла не только вширь (расширение функционала), но и вглубь - портирование Rollup на Rust. Уже даже есть название нового сборщика - Rolldown.
На данный момент Vite использует два разных сборщика - esbuild
для запуска на dev сервере (скорость) и Rollup
для билда (экосистема плагинов), что даёт некоторые проблемы в совместимости их результатов. Rolldown
предполагается использовать и для того, и для другого.
Anthony Fu
Первый человек по активности в команде Vue Anthony Fu ведет атаку с флангов. Создатель Vitest, Slidev, VueUse, UnoCSS, Elk, Type Challenges и многого другого и один из основных разработчиков Nuxt вместе с его автором Pooya Parsa выделил из фреймворка некоторые удачные модули и продвигает их в JavaScript мир независимо. Таким модулем является, например, Nitro, библиотеки unjs и unplugin (префикс "un" означает unified или universal, если что).
Очень часто подобные системы являются не просто библиотеками, а комбайном, позволяющим "легко" создавать что-то и сразу деплоить на частные хостинг решения, типа Vercel или AWS, что вызывает законные претензии у опытных разработчиков, привыкшим к стандартам, слабой связности сервисов и открытым технологиям, но, очевидно, притягивает начинающих.
По другому флангу Anthony Fu повел тяжелую кавалерию на ESlint в виде пакета @antfu/eslint-config , который существует уже больше года, но за последние три недели рванул с версии 0.43.1 до 2.1.0, получив в последней "Optional react support". Нужно сказать, что данный конфиг действительно очень сильно упрощает настройку линтера на js проектах и рекомендуется к применению.
Кроме линтера Anthony подобрал задеприкеченные ESbuild-ом правила по форматированию текста и создал новый проект - Stylistic. Почему Prettier не подходит иногда для форматирования он объясняет отдельно.
VitePress
VitePress, последователь VuePress, SSG фреймворк, де-факто стандарт для внутри-экосистемных документаций. Представляет собой законченный продукт, позволяющий создать приятную справочную систему разработчику, даже не знакомому с Vue. Кастомизация же с помощью Vue компонент позволяет сделать если не всё, то очень многое, включая как персональный блог, так и онлайн магазин.
Я бы сказал, что VitePress сильно пока ещё недооценён, и у него огромный потенциал на своём поле битвы. Anthony Fu, кстати, недавно и там сделал коммиты, оптимизируя рендеринг блоков кода.
Идеологическая работа
Выше рассмотрены всего три момента, которые однако ясно показывают текущую стратегию команды Vue.js. Недавние выступления Evan You, например THINKING ACROSS THE FRAMEWORK BARRIER - RenderATL 2023 и Nuxt Nation 2023: Evan You - Vue.js and Vite Updates подтверждают это.
Anthony Fu также является открытым проповедником по агностицированию и расширению экосистемы Vue и аннексиям чужих территорий, выпуская для своих адептов обучающие видео подобно этому - Anthony's Road to Open Source: The Set Theory | ViteConf 2023.
Рынок вакансий и вебсайтов
Теперь посмотрим на рынок вакансий. Еще совсем недавно Vue назывался младшим братом React и Angular. На данный момент:
Хабр Карьера, открытых вакансий:
React - 131
Vue.js - 77
Angular - 40
Upwork, предложения, опубликованные за последние 5 дней:
React - 800
Vue 120
Angular - 70
Тренды
Ну и напоследок заглянем на trends.builtwith.com, показывающий статистику сайтов, использующих те или иные технологии:
Примечание: временные шкалы на всех графиках не являются линейными и не дают представления о сравнительном росте графиков. Рост Vue.js происходит быстрее.
Обратим внимание на второе место в списке стран по популярности Vue. Будем надеяться, что в этом заслуга и нашего блога )
Из вышеуказанной статистики видно, что Vue "в среднем" на данный момент отстает от React примерно в два раза. За последние 4 года Vue сократил отставание от React по загрузке основного npm пакета с 7 до 4 раз. Ну и надо учитывать инерционность рынка - доминирование React 5-10 лет назад было, всё-таки, подавляющим, а вебсайты не переписываются каждый год на новый фреймворк.
Тренды Ангуляра удручающи для Google, что, наверное, как-то связано с его менеджментом. Падение в 2021 году очевидно было вызвано стратегическими решениями топ-менеджеров компаний отказаться от Ангуляра еще за 2-3 года до этого. Так что из вопроса: "Смогут ли гиганты Facebook и Google остановить китайского самородка?" второго гиганта можно уже вычёркивать, и всего два бойца остаются в Mixed Frontend Arts октагоне в схватке между свободным разумом опен сорса и кровавыми деньгами корпораций.
Узнать интересную и полезную информацию о Vue.js, а также изучить фреймворк по переводу лучшего учебника по данной теме "Vue.js 3 Design Patterns and Best Practices" можно на нашем сайте: Vue-FAQ.org.
Также у нас появился Телеграм-канал: https://t.me/vuefaq
P.S. Как правильно заметил @format1981 в комментариях, результаты опросов ниже мало о чем говорят, кроме как косвенно о статистике заинтересовавшихся материалом данной статьи.