Разработчики, которые только начинают работать с фреймворком переднего плана, хотят знать, какой фреймворк выбрать. Иногда ответ прост, но иногда это еще не все. В моем случае мне пришлось глубоко погрузиться в различия между основными игроками, чтобы принять твердое решение. И…

… Мое решение меня удивило.

Угловой

Angular входит в тройку лучших игроков, но есть пара вещей, которые я не предпочитаю:

  1. TypeScript: некоторым это нравится, а другим - нет. Я не в лагере. JavaScript не следует принуждать к тому, чтобы быть чем-то, чем он не является.
  2. Обратная совместимость: при обновлении с V1 до 2 Angular потерял много разработчиков. Вероятно, они сделают будущие версии обратно совместимыми, но это никогда не гарантируется.

По этим и другим причинам я пришел к выводу, что предпочитаю React и Vue.

React против Vue

Реагировать 👍

React - безусловно, самый популярный фреймворк на сегодняшний день. Его используют большинство разработчиков и компаний. Он также имеет наибольшее количество доменов, использующих React. Но каковы некоторые из реальных преимуществ React?

React Pros:

  • Более зрелым. Он примерно на год старше Vue.
  • Большая экосистема. Для любой конкретной задачи часто существует несколько вариантов, какой пакет NPM использовать.
  • React используется гораздо шире, а это означает, что если компания привлечет другого разработчика, будет легче найти кого-то, кто знает React.
  • При поддержке Facebook. Более или менее гарантирована постоянная поддержка.
  • Разработчик может кодировать в коде (JSX). Это также позволяет улучшить опыт для тех, кто знает JavaScript.
  • Поскольку код React ближе к ванильному JavaScript, разработчик работает над навыками JavaScript, работая с ним.
  • Не такой самоуверенный. Более открыт для настройки.
  • Поддержка сообщества: на StackOverflow в 4 раза больше сообщений о React, чем на Vue.
  • Нативная поддержка: хотя в последнее время у React Native были проблемы со скоростью, это стандарт React для нативной разработки. Для Vue выбор не так очевиден, и нужно выбирать между несколькими вариантами.

Минусы реакции:

  • React требует дополнительных настроек. Vue имеет множество встроенных функций. С такими вещами, как NextJS и библиотекой форм, такой как Formik, это делает работу менее болезненной.
  • Это более сложно выучить. Формы и проверки более сложны. Есть методы жизненного цикла, которые необходимо вызывать / использовать. Методы должны быть привязаны к компоненту, а состояние не может быть двухсторонним из коробки.

  • Библиотека response-router, хотя и поддерживается Facebook, не является «официальным» пакетом. Это сторонняя компания.
  • Точно так же redux - это сторонняя библиотека. Однако с новыми хуками React это могло быть меньше проблем.

Vue 👍

Vue набирает популярность, и хотя он не так широко используется, он, безусловно, имеет свои преимущества. Давайте разберемся, почему Vue может быть хорошим выбором вместо React:

Vue Pros:

  • Проверка формы: разработчики могут довольно просто создавать свои собственные проверки формы, как продемонстрировали создатели Vue. Кроме того, существуют библиотеки проверки, такие как Vuelidate и Vee-Validate.
  • Создание формы: Формы довольно просты с двухсторонней привязкой прямо из коробки.
  • Простота: при использовании vue-cli требуется меньше настроек, и как только разработчик привыкнет к синтаксису Vue, гораздо быстрее будет подготовить и запустить разработчика, тратя меньше времени на обучение нюансам фреймворка.
  • Это открытый исходный код: да, React также является открытым исходным кодом, но Vue не «управляется» крупной компанией, поэтому он, вероятно, будет обновляться только функциями, которые приносят пользу сообществу, а не только конкретной компании. Кроме того, будет немного легче идти в ногу со скоростью, с которой вносятся основные изменения.
  • Документация: в React есть отличная документация, но поскольку большая часть фреймворка поставляется «из коробки», его документация более целостна.
  • Сплоченность сообщества: у React больше сообщений на StackOverflow, но, поскольку в React есть несколько способов сделать что-либо, ответы могут быть фрагментированы. Ответы по поводу Vue, как правило, очень похожи, а значит, меньше запутывают.
  • Скорость: React и Vue очень близки по скорости, но без какой-либо конфигурации (необходимой в React) Vue работает быстрее из коробки. Частично это связано с тем, что обновление в компоненте React вызывает повторный рендеринг всех его дочерних компонентов. Хотя это можно смягчить с помощью shouldComponentUpdate, Vue уже «знает», какие компоненты должны обновляться в зависимости от изменений, и обновляет только эти компоненты.

  • Состояние компонентов и связь: Vue имеет встроенное управление состоянием с Vuex, а с эмиттерами событий общение между родительскими и дочерними элементами - это пустяк по сравнению с React.
  • Возможность использовать JSX в качестве опции, но по-прежнему использует шаблон по умолчанию. Я предпочитаю вариант JSX, но многим разработчикам нравится использовать этот шаблон.
  • Звезды на GitHub на самом деле только что превзошли React. Это не обязательно означает, что он лучше, но это показатель того, что его популярность растет.

Минусы Vue:

  • Ограничено пакетами, связанными с Vue, и в значительной степени Vuetify для библиотеки стилей (стилизованные компоненты)
  • Так много абстрагируется, что навыки JavaScript могут атрофироваться. Однако, если разработчик работает с полным стеком в Node, JavaScript будет написан достаточно далеко на внутренней стороне!
  • Более самоуверенный, чем React.

Вывод

Итак, какой из них выбрать? Как и все, это зависит от обстоятельств!

Мне лично нравится React, потому что именно так меня познакомили с миром фреймворков. Однако мне кажется, что Vue - лучшее из многих миров. Мои фавориты о Vue:

  • Просто, чисто
  • Единое Сообщество
  • Быстро и умно
  • Достаточно надежен, чтобы удовлетворить все потребности фронтенд-фреймворка

Учитывая все вышесказанное… 🥁

Я выбрал Vue для моего следующего большого приложения. А как насчет остальных? Есть ли что добавить? Я хотел бы услышать больше от других!