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

Это как таковое не предназначено для того, чтобы сказать вам или кому-либо еще, что они не должны использовать React. Я знаю, что людям он нравится, у него большее сообщество, чем у Angular, он поддерживается Facebook, и я знаю, что он будет продолжать использоваться снова и снова во многих будущих проектах.

Расположение (каркасной) земли

Как профессиональный разработчик, использующий javascript для всех видов разработки, область фреймворков немногочисленна, и преобладают три больших фреймворка нашего времени; Angular, React и Vue.

У каждого инструмента есть своя цель, и я, как разработчик, стараюсь разрабатывать два типа веб-приложений; второстепенные приложения в стиле «апплет» - такие как реактивная форма на статической веб-странице или, возможно, даже обновление устаревшего сайта по частям. Это то, для чего был создан Vue - и он работает очень хорошо.

Другой тип приложений - это большие веб-приложения корпоративного типа. Теперь я уверен, что React идеально подходит для любой работы, для которой вы хотите его использовать - это в значительной степени то, что мне постоянно говорят, - мой собственный опыт показал мне, что каждый проект React индивидуален. При написании кода нет четких руководящих принципов или соглашений, и если они есть - это учат сообщество, а не что-то естественное для меня как корпоративного разработчика. Это означает, что я видел бесчисленное количество проектов React, которые подходят к вещам по-разному - в компании, в которой я работаю, у нас много-много проектов (мы - компания нормального размера, насчитывающая около 3500 человек), которые используют React - все они начинаются с нуля и все подходят дела обстоят иначе.

Почему Angular лучше React (по моему скромному мнению)

Итак - вот чрезвычайно категоричный черно-белый взгляд на это.

Хотя я видел столько же проектов Angular, как и React - которые подходят к делу по-разному - структура проектов Angular определяется шаблоном, сгенерированным CLI, а также способом использования Angular. Я когда-то читал где-то это

Вы можете делать что угодно в Angular, вам просто нужно сделать это в Angular

Этот. Некоторых это может оттолкнуть. Вам навязывают условности, но для меня как разработчика, который обычно участвует в небольших или больших командах. Это золото. Это гарантирует хотя бы НЕКОТОРЫЕ чувство согласованности при работе с несколькими проектами, основанными на Angular. Скажем, я прихожу в новый проект, меня просят исправить несколько ошибок в интерфейсе и разработать новую функцию. Потому что Angular требует определенной структуры и стиля кода. Мне не понадобится много времени, чтобы разобраться в этом конкретном проекте - и я могу потратить свое время на решение проблем, связанных с предметной областью, вместо инструментов и фреймворка - потому что мы также следуем пути Angular - Передача наших проектов другим Разработчики или внутренние команды клиентов, как правило, работают гладко - общая структура известна заранее.

С другой стороны, большинство проектов React, которые я видел, следуют структурному принципу: «кто бы ни был ответственным в тот день» - это может не быть проблемой в небольших компаниях с двумя или тремя командами разработчиков - но поверьте мне, в большой корпорации - многие часы тратятся впустую, занимаясь эти вопросы.

Кроме того, настройка библиотек разделяемого кода очень проста, и, если вы ДЕЙСТВИТЕЛЬНО следуете методике Angular, создание компонентов, которые могут перетаскиваться между проектами, становится довольно простым.

В заключение

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

Согласиться или согласиться не согласиться? :)