«Честное» сравнение двух самых популярных интерфейсных фреймворков.

Привет народ,

Я хотел бы подробно рассказать о своем опыте изучения React и дать вам честное сравнение между ним и Angular.

Прежде чем начать, я должен заслужить доверие. Я работаю с Angular примерно с 2017 года, вскоре после того, как он ворвался на сцену и быстро зарекомендовал себя как король интерфейсных фреймворков. До этого я несколько лет работал с предыдущим лучшим интерфейсным фреймворком, AngularJS.

Что касается React, я только что закончил официальный учебник и прочитал эту статью Андре Гарди о React Hooks.

Это была потрясающая статья, Андре, просто жаль, что вы застряли, используя неправильный фреймворк.

В любом случае, можно с уверенностью сказать, что я являюсь авторитетом в отношении обоих предложений и обладаю высокой квалификацией, чтобы провести объективное сравнение между ними.

Я также должен упомянуть, что ни Angular, ни React мне не платят за этот обзор, если только вы не считаете, что Angular подарил мне фреймворк, который так приятно использовать.

Сначала я раскрою подводные камни использования React.

Подводные камни использования React

# 1 React - это просто библиотека

Согласно Википедии, главному хранилищу знаний на планете Земля, React - это библиотека JavaScript для создания пользовательских интерфейсов…

Сравните это с описанием Angular на том же сайте: это веб-приложение с открытым исходным кодом на основе TypeScript фреймворк…

Я не уверен, почему разработчики React решили создать просто библиотеку, когда они могли бы создать фреймворк, но не требуется математического гения, чтобы узнать, кто победит в этой категории.

Очевидно, фреймворк ›библиотека.

# 2 Учебное пособие предвзято

Для тех из вас, кто не видел его раньше, в этом руководстве вы узнаете, как создать игру в крестики-нолики в браузере. Перед тем, как вы начнете, они не говорят вам, что это сильно предвзято, если не прямо предвзято, по отношению к Ос. X запускается первым каждый раз.

Не верите мне? Взглянем.

Да, когда я впервые увидел это, я подумал, что это, должно быть, ошибка. Ясно, что X всегда будет побеждать. Поэтому я подумал, что это может измениться, если я обновлю страницу.

Для меня это был большой красный флаг.

# 3 React использует странный язык

Перейдя к руководству, я подумал, что вернулся в страну потрясающих интерфейсных фреймворков, когда мне пришлось использовать интерфейс командной строки для создания своего приложения. У меня закружилась голова от предвкушения, когда он закружил свой маленький кружок, и я не мог дождаться, пока на меня смотрел симпатичный маленький файл TypeScript, в который я мог бы впиться зубами.

Боже, я был разочарован.

Не только не было файлов TypeScript, но и файл JavaScript (тьфу), который он мне дал, содержал какой-то странный, чужеродный синтаксис, из-за которого меня немного вырвало во рту. Согласно руководству, этот язык называется «jsx».

Я посмотрел, и только 60% браузеров поддерживают jsx, а 100% поддерживают TypeScript, который предоставляет Angular. Иди разберись.

# 4 React использует одиночные фигурные скобки для обозначения привязок

Серьезно, кто это делает?

# 5 React устарел

Он вышел в 2013 году. Angular вышел в 2016 году. Опять же, вы делаете математику.

Зачем использовать библиотеку семилетней давности, если можно использовать фреймворк четырехлетней давности?

# 6 React создан Facebook

Это тот самый моб, который произвел такие непонятные инструменты, как GraphQL, Yarn, Jest и Flow. Я не могу представить, что эти проекты добавили к веб-разработке.

У React может быть доля рынка, популярность среди разработчиков, куча статей, руководств и других ресурсов для поддержки разработчиков, а также супер простой инструмент для создания собственных приложений для Android и iOS с использованием базы кода React, но будучи настолько старым, насколько долго будет ли это до того, как выйдет React 2.0, и вам придется переписать все свои приложения в новой и незнакомой среде?

Радости Angular

Мы рассмотрели подводные камни использования React, поэтому ради справедливости рассмотрим радости использования Angular.

# 1 Это сделано Google

Можете не сомневаться, что он сохранится надолго, потому что ни один из их проектов никогда не проваливался.

# 2 Angular поставляется со всем необходимым для полноценного приложения "из коробки".

Будучи фреймворком, а не просто библиотекой, с Angular вы получаете полный набор функций:

Я мог бы продолжать бесконечно. Если вам нужны такие же включения в свой проект React, вам придется установить их самостоятельно. Это не было бы такой проблемой, если бы в экосистеме JavaScript не было достойного менеджера пакетов.

# 3 Angular генерирует модульные и сквозные тесты для каждого создаваемого вами проекта

Он также генерирует модульные тесты для каждого компонента и каждой службы. Это потрясающе, потому что это устраняет боль, связанную с настройкой тестов, поэтому все, что нужно сделать разработчикам, - это заполнить специфику тестирования своего конкретного приложения / компонента / службы.

Из-за этого каждый известный мне разработчик Angular практикует TDD или BDD и поддерживает свои модульные и сквозные тесты в полном соответствии со своей базой кода.

Заключение

Возможно, вы слышали выражение «Почему они называют это Xbox 360?» Потому что, увидев это, ты поворачиваешься на 360 градусов и уходишь ».

Мой совет? Сделайте себе одолжение: развернитесь на 360 градусов от React и погрузитесь в нежные объятия Angular.

Спасибо за прочтение

PostScript

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

Не я, конечно. Я никогда не опускался так низко, чтобы подать заявку на работу в React, по причинам, упомянутым выше. Но если вам случится получить приложение от разработчика Angular, желающего выйти на рынок React, бросьте ему кость… вы не пожалеете об этом.

Post-PostScript

То же самое и с Vue.js.

Пост-Пост-Постскриптум

Это была сатира.