Комментарии 48
О, напишите ещё про плюсы и минусы машинного перевода.
React vs Angular vs Vue.js — What to choose in 2019? (updated)
Я так понял, за такие «переводы» (которые даже не помечены соответствующим тегом) ныне дают инвайт… По крайней мере, со стороны это выглядит именно так.
Имхо его надо брать если у вас прям большое серьезное приложение и у команды достаточно опыта писать на нем правильно, иначе есть риск потонуть.
Голые React и Vue — несомненно не годятся. Какой-нибудь твиттер или фейсбук написать — без проблем, но если речь о приложениях хотя бы среднего размера и сложности — тут уже нет.
Из него конечно можно с помощью напильника, синей изоленты и какой-то матери сделать пару легковесных компонентов
Сомнительное утверждение. Даже после вырезания всего и вся результат сложно будет назвать легковесным.
Компании, которые используют Vue.js: 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, поведение которого зависит от внутреннего содержимого
А как оно зависит?
Добавляем второй параметр в вызов useEffect(() => {}, []), вместо componentDidMount получаем componentDidMount + componentDidUpdate (вроде бы). Выше, я неправильно написал, что от внутреннего содержимого, т.к. в этом случае поведение зависит от наличия второго параметра при вызове метода.
Похоже вы просто недоразобрались в апи хуков: https://reactjs.org/docs/hooks-effect.html
Жаль, что разработчики реакта и vue не нашли/не придумали решение проблемы повторного использования логики без перехода в функциональный стиль.
codesandbox.io/s/pedantic-silence-xu0jd — Переиспользование логики, и добавление useEffect в классовые компоненты (аналог reactjs.org/docs/hooks-custom.html)
Наслаждайтесь, все очень даже легко и просто переиспользуется с классовыми компонентами
Ну и реальная проблема с некоторыми сторонними компонентами (а может даже с очень многими), от которой свое решение не поможет. Допустим, надо использовать сторонний компонент и нужно добавить какой-нибудь не предусмотренный в нем функционал или убрать не нужный. А компонент так спроектирован, что этого нельзя сделать. Либо бери другой, менее подходящий плагин, либо копируй исходники в свой проект и меняй их, либо ищи еще какое-нибудь решение проблемы. До недавнего времени повсеместно использовались HOC. Компоненты в библиотеках зачастую предоставлялись уже обернутые в них. А удалить/отключить ненужный HOC нельзя. И получается, что вместо того, чтобы получить набор «кирпичиков», для использования в своих компонентах, получаем готовые не очень гибкие компоненты. Вообще, пока логика будет писаться в самих компонентах, этого не избежать.
Не вижу смысла дискутировать об этом. У нас с вами разные ситуации.
Я просто оставлю это здесь: https://habr.com/ru/post/314752/
Для крупных и сложных веб приложений с нуля уровня энтерпрайз — однозначно Angular 2+, как наиболее целостную экосистему, для всего остального есть vue.js
React + Typescript + MobX — проекты абсолютно любой сложности и абсолютного любого размера без проблем.
Я же говорю — при прочих равных условиях. Вопрос в том, с какого рода проблемами ты столкнешься, и какие есть инструменты и способы их решения. Angular изначально затачивали на энтерпрайз масштабы и такого рода проекты. Там более целолстная экосистема. А React к решению такого рода проблем «приспосабливали». И на том и на другом можно создать достойные продукты. Вопрос только в количестве костылей, и это соотношение не в пользу React на такого рода проектах.
Я пилил на Ангуляре энтерпрайз. Могу сказать, что он для этого совсем не подходит. Ему с одной стороны не хватает высокоуровневых решений (как в каком-нибудь ExtJS). А с другой — гибкости. И это если не говорить про отвратительную переусложнённую архитектуру, которую они на живую чинят ломая обратную совместимость, из-за чего многие компоненты для Ангуляра, которые вы можете найти в интернете не работают или глючат.
Относительно медленная производительность, учитывая различные показатели.
Это не совсем так. Если писать код "в лоб" (т.е. без оптимизаций), то ангуляр быстрее реакта в большинстве случаев. Если с оптимизациями — будет одинаково.
Я использую Vue.js на многих проектах и очень им доволен
Достаточно двух тегов v-if и v-for, чтобы начать с ним работать и получить выигрыш по скорости разработки и объему кода раз в 10, и ничего больше можно не изучать
Я считаю это огромным плюсом Vue.js
Не интересно. Где минусовать?
React или Angular или Vue.js — что выбрать?