Как стать автором
Обновить

Комментарии 48

О, напишите ещё про плюсы и минусы машинного перевода.

Кажется, вот оригинал:
React vs Angular vs Vue.js — What to choose in 2019? (updated)

Я так понял, за такие «переводы» (которые даже не помечены соответствующим тегом) ныне дают инвайт… По крайней мере, со стороны это выглядит именно так.
После vue angular показался чутка overengineered со всеми своими концепциями и приправленный rxjs'ом сверху. Знаете такое чувство, когда открываешь какой-нибудь компонент и думаешь «е##ть, что тут происходит вообще» =) Вот это ангуляр.

Имхо его надо брать если у вас прям большое серьезное приложение и у команды достаточно опыта писать на нем правильно, иначе есть риск потонуть.
С чего бы это вдруг именно Angular для чего-то большого, а остальным типо это так, для простеньких апликух? Где увидели/услышали эту фразу и приняли ее за истину?
Остальные фреймы для чего угодно, тут нет противопоставления, это исключительно мое имхо по поводу ангуляра.
Angular 2+ — это SPA. By design. Из него конечно можно с помощью напильника, синей изоленты и какой-то матери сделать пару легковесных компонентов, но зачем?
React и Vue это типо это так, для простеньких апликух по вашему? На что-то большое не годятся?
FreightLiner и Камаз это типа так, для всякой мелочёвки по вашему, если на них нельзя как на Белазах по 100 тонн за раз возить? На что-то большее не годятся?

Голые React и Vue — несомненно не годятся. Какой-нибудь твиттер или фейсбук написать — без проблем, но если речь о приложениях хотя бы среднего размера и сложности — тут уже нет.

Из него конечно можно с помощью напильника, синей изоленты и какой-то матери сделать пару легковесных компонентов

Сомнительное утверждение. Даже после вырезания всего и вся результат сложно будет назвать легковесным.

Когда читаешь в статье «реакт очень быстр, потомушто VDOM» — понимаешь, что в этой статье пошло не так примерно всё, что вообще могло пойти не так.

Компании, которые используют Vue.js: Habr.

Habr разве компания?)

Мда, еще одна статья про сравнение этих фреймворков. Еще и непонятно о какой компании говорится в статье)
Ну ладно.

«Преимущества React:
Легко изучить.»
Так было года 3-4 назад. Думаю, этот пункт пора перенести в vue. Сейчас наверное 90% реакт проектов используют Redux. Так что, говоря о react можно прикреплять весь общепринятый зоопарк плагинов к нему. Примерно таких: react-router, redux, redux-forms, redux-saga, reselect.
Помимо этого есть куча тонкостей в самом react, а также несколько часто-используемых техник. А недавно появившиеся хуки вообще вынудили и старых разработчиков переучивать api жизненного цикла.
Со всем этим реакт точно проще angular? Что-то я не уверен.
На мой взгляд пора валить с реакта( Дэн хорошо постарался.

В Vue тоже появился новый апи на хуках и с ним тоже используют всякие vuex.

Видел, но пока не пробовал. Возможно с ним тоже будут свои проблемы. И думаю, что будут.
Но там хотя-бы useMounted, useUpdated сделали, а не объединили 3 метода в useEffect, поведение которого зависит от внутреннего содержимого. (Интересно, кого нанимает фейсбук? Спецов по алгоритмам и оптимизации? А то лично я в решениях реакта не ощущаю, что его разработчики толком разбираются в проектировании)
Хотя сейчас смотрю, там тоже есть useEffect, из названия которого не понятно, что он делает.

Жаль, что разработчики реакта и vue не нашли/не придумали решение проблемы повторного использования логики без перехода в функциональный стиль.
useEffect, поведение которого зависит от внутреннего содержимого

А как оно зависит?

Добавляем return, возвращающий некую функцию, добавляется поведение аналогичное componentWillUnmount.
Добавляем второй параметр в вызов useEffect(() => {}, []), вместо componentDidMount получаем componentDidMount + componentDidUpdate (вроде бы). Выше, я неправильно написал, что от внутреннего содержимого, т.к. в этом случае поведение зависит от наличия второго параметра при вызове метода.
Возможно, я пока мало ими пользовался. Почитав доки и использовав их несколько раз, я пока вижу то, что написал выше.
Если я где-то не прав, буду рад услышать поправки.
Жаль, что разработчики реакта и vue не нашли/не придумали решение проблемы повторного использования логики без перехода в функциональный стиль.

codesandbox.io/s/pedantic-silence-xu0jd — Переиспользование логики, и добавление useEffect в классовые компоненты (аналог reactjs.org/docs/hooks-custom.html)

Наслаждайтесь, все очень даже легко и просто переиспользуется с классовыми компонентами
Видел уже ваше решение. Когда оно заменит hoc и хуки во всех основных сторонних плагинах, тогда может и буду использовать) Но скорее из react-а раньше классы выпилят, чем это случится.
Зачем что либо ком-то заменять? Если это уже предусмотрено и работает, просто бери и пользуйся, тут просто обычная работа с классовым компонентом, никакой магии
Хотя бы затем, что чем меньше различных решений одной и той же проблемы в проекте, тем лучше.
Ну и реальная проблема с некоторыми сторонними компонентами (а может даже с очень многими), от которой свое решение не поможет. Допустим, надо использовать сторонний компонент и нужно добавить какой-нибудь не предусмотренный в нем функционал или убрать не нужный. А компонент так спроектирован, что этого нельзя сделать. Либо бери другой, менее подходящий плагин, либо копируй исходники в свой проект и меняй их, либо ищи еще какое-нибудь решение проблемы. До недавнего времени повсеместно использовались HOC. Компоненты в библиотеках зачастую предоставлялись уже обернутые в них. А удалить/отключить ненужный HOC нельзя. И получается, что вместо того, чтобы получить набор «кирпичиков», для использования в своих компонентах, получаем готовые не очень гибкие компоненты. Вообще, пока логика будет писаться в самих компонентах, этого не избежать.
Ну так не фиг использовать под каждый чих сторонние компоненты… Тем более если их поведение тебя не устраивает на 100%. А вообще если такая великая проблема писать код собственноручно, то форкаешь неугодный компонент, правишь его так, чтобы тебя устраивал, публикуешь в npm и вуаля. Я вот вообще не использую сторонние компоненты, либо использую те, поведение которых на 100% устраивает и никаких проблем не знаю много лет.
Бизнесу надо побыстрее и подешевле.
Не вижу смысла дискутировать об этом. У нас с вами разные ситуации.
Мало ли что надо бизнесу, уважающий себя разработчик не будет терпеть всякую дичь ради денег, вакансий тонны на рынке

А много ли вакансий, где не придётся страдать от очередного кривого фреймворка "на Реакте"?

Полно, с 2012 года 90% проектов я пишу с нуля и не страдаю

Ну доброе утро значит. Последние 2 года 90% проектов безальтернативно пишут "на Реакте".

ну и? мне реакт нравится

Не сомневаюсь. Когда заходите повысить эффективность своей работы он вам резко разонравится.

Для крупных и сложных веб приложений с нуля уровня энтерпрайз — однозначно Angular 2+, как наиболее целостную экосистему, для всего остального есть vue.js

Да? Прям однозначно? А что если есть разработчики реально высокого уровня, которые знают что такое построение архитектуры? Для них тоже дорога в энтерпрайз в паре с React или Vue закрыта?
Нет конечно, не зактыта. Зачем же так категорично и буквально понимать. Тут как говорят экономисты — «при прочих равных условиях».
Нет, абсолютно. Это типичное заблуждение из разряда «Я прочитал это в статье, где написано Angular это энрепрайз, а остальные это для Hello World» значит так оно есть, ведь там же не могут пургу нести.
React + Typescript + MobX — проекты абсолютно любой сложности и абсолютного любого размера без проблем.
Насчет «проекты абсолютно любой сложности» — тут я согласен. Насчет «без проблем» — это спорное утверждение.
Я же говорю — при прочих равных условиях. Вопрос в том, с какого рода проблемами ты столкнешься, и какие есть инструменты и способы их решения. Angular изначально затачивали на энтерпрайз масштабы и такого рода проекты. Там более целолстная экосистема. А React к решению такого рода проблем «приспосабливали». И на том и на другом можно создать достойные продукты. Вопрос только в количестве костылей, и это соотношение не в пользу React на такого рода проектах.
Если вы под «при прочих равных» подаразумеваете низкосортных разрабов, то тогда да, ваше утверждение правильное, но если разрабы сильные по обе стороны, то тут уже наоборот я думаю в ползу реакта будет результат, я имею ввиду именно разработчиков, а не «Senior прикручивальщиков» у которых package.json невообразимых размеров и под каждый чих они ищут готовое «решение» и прикручивают его, т.к. для них самих это сложно, лениво или они думают что напишут говно, а вот другие пишут идеально.

Я пилил на Ангуляре энтерпрайз. Могу сказать, что он для этого совсем не подходит. Ему с одной стороны не хватает высокоуровневых решений (как в каком-нибудь ExtJS). А с другой — гибкости. И это если не говорить про отвратительную переусложнённую архитектуру, которую они на живую чинят ломая обратную совместимость, из-за чего многие компоненты для Ангуляра, которые вы можете найти в интернете не работают или глючат.

Тут уместно вспомнить поговорку Черчиля про демократию.
«Демократия — отвратительная форма правления, но ничего лучшего человечество пока не придумало.»
Относительно медленная производительность, учитывая различные показатели.

Это не совсем так. Если писать код "в лоб" (т.е. без оптимизаций), то ангуляр быстрее реакта в большинстве случаев. Если с оптимизациями — будет одинаково.

Я использую Vue.js на многих проектах и очень им доволен


Достаточно двух тегов v-if и v-for, чтобы начать с ним работать и получить выигрыш по скорости разработки и объему кода раз в 10, и ничего больше можно не изучать


Я считаю это огромным плюсом Vue.js

А когда v-model осваивает, такое начинается… )))

Не интересно. Где минусовать?

Что посоветуете выбрать — по критерию время вхождения для написания web морды для create (с проверкой через email) & login пользователя? p.s. есть бэкграунд с java script (front) + backend (java)
vue+node.js
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории