RUVDS.com corporate blog
Website development
JavaScript
VueJS
Comments 31
+1
Я не понимаю какая разница между react.js и vue, пожалуйста, поясните ;)
0
Изучая React вы теоретически(!) быстрее найдёте себе работу (больше спрос) чем изучая Vue.

А вообще и тот и другой в этом году резко "меняют шкуру":

React -> React 16.8 with Hooks — уже не React, а что-то другое.
Vue -> Vue 3 — уже не Vue, а что-то другое.

Поэтому если вы решили что-то изучить прямо сейчас, то изучайте материалы как можно более свежие, как можно более. Как можно свежие.

Всё что писали про React и Vue в прошлом году, можно выкинуть на свалку истории. На свалку.
0
Vue -> Vue 3 — уже не Vue, а что-то другое.
Кто вам такое сказал? В официальном roadmap написано: «High level API remains as close to 2.x as possible.»
+4
Что, React Hooks прям отменяет и lifecycle, и JSX, и HOC? Создатели сами пишут, что внедрять рекомендуется неспешно, основная парадигма программирования на React не меняется. И, естественно, нужно поддерживать тонны старого кода на классах. Кроме того, можно продолжать писать новый код на тех же классах.
На свалку, ага, facepalmjpg
0

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

0
Хуки лишь более удобный способ реализации one-directional data flow на практике. С чего бы вдруг суть шкуры реакта изменится?
0
Тем, что уже понеслась — свои хуки начали лепить все подряд. К чему это приводит — см. woocommerce.
+4
Ну на пальцах основные отличия для новичка, который не знает, что «потрогать» первым.

1. Vue не требует вообще никакой инфраструктуры, его можно воткнуть в существующий сайт с вордпрессом на шаред php хостинге, особенно если вы в курсе, что ослик сдох. Для реакта и ангуляра надо где-то поднимать ноду, npm/yarn, webpack/parcel, а потом два дня разбираться, чем babel/core отличается от babel/core и почему на первом create-app не заводится. Ну то есть какой-нибудь бандлер потом, перед выпуском в прод, настроить придётся, но это будет потом, и для vue достаточно будет parcel с нулевой конфигурацией.

2. Vue не требует изучать новые языки, работая на чистом HTML и JS. Гипотетически реакт тоже так может, но по факту 99% примеров и готовых react компонентов используют JSX и ~50% — Typescript. Это всё заметно увеличивает порог входа.

3. Vue не настаивает на функциональной парадигме, его вполне устраивает ООП. Если вас пугают выражения типа
let b = f => g => h => x => f(g(x))(h(x))
в реакте будет сложновато. При этом, если вам нравятся god object-ы на 100500 полей и методов, которые отвечают за всё, включая состояния кнопок, то vuex (аналог redux/flux/...) вполне себе есть, берите и пользуйтесь.

4. Следствие п. 3 — двусторонние биндинги. Они просто работают. Вам не надо, как в 90-ых, писать handleChange/handleKeyUp/… для каждого html элемента, а потом городить UNSAFE_ComponentWillRecieveProps и делать прочие приседания в скафандре. В результате наличию этой и других мелких сладких плюшек (например, стандартного роутера из коробки) кода на vue получается стабильно раза в 2-3 меньше, чем в таком же проекте на реакте, а пишется он быстрее.

При всём при этом реакт, конечно, дико распиарен.
-1
Теоретически с реактом так можно, практически — jsx сам себя не скомпилирует. Использовать реакт без jsx — ну, такое. Обычный vanilla js современных версий привычнее, понятнее и проще.
0
В документации реакта сказано, что это только в качестве песочницы. Реальное приложение так не пишут. А вот в Vue Это вполне работающий вариант.
+2

Реальное приложение на Вью тоже так никто не пишет. Как средство миграции — может быть, но не более.

0
Это следует читать так так?
Реальное приложение где Vue подключается через скрипт никто не пишет
.Не уверен в этом. Скорее правильно сказать так?
Новое приложение с где Vue подключается через скрипт никто не пишет.
Тут согласен. Хотя дело еще в квалификации разработчиков.
0
Вот есть сайт, там есть страница, на странице допустим есть селект, выбор значения в этом селекте будет влиять на компоненты, которые отображаются на странице, и их содержимое, например может появится еще один селект с списком, который зависит от выбора в первом селекте, и который так же будет влиять на компоненты на странице.
Есть ли смысл переписывать такое с чистого js на vue? Будет ли итоговый код меньше, быстрее и удобнее в поддержке?
0
ну, зависит. Современный js тоже не стоял на месте. Если у вас на странице два селекта, ни одна библиотека какого-либо существенного выигрыша не даст. Если 20 — уже есть о чём говорить.
0

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

0

Почти со всем согласен, кроме высказывания про vuex и god-object'ы на 100500 полей) Если правильно разбивать функциональность приложения, то таких объектов не будет. Можно подумать, что при разбитии может критично увеличиться количество связей, но это как раз происходит из-за неправильного определения границ этой функциональности (либо неправильно реализованного общения между частями приложения).
Однако, если god-object'ы действительно нравятся, то на**кодить их легче лёгкого: vuex, с виду, прям сам подталкивает к их написанию)) Так что тут вы тоже частично правы)

0
Год назад мне нужно было научиться быстро набрасывать web frontend для разнообразных задач (сам я в основном пишу backend и иногда мобилки).
React с ходу мне не зашел. Посмотрел в сторону vue. Очень помог курс «Vue JS 2 — The Complete Guide (incl. Vue Router & Vuex)», автор Maximilian Schwarzmüller. Он есть на Udemy и на coursehunters. Очень хороший стиль изложения, добротный понятный английский. На 352 видео у меня ушло около месяца, после чего я начал сносно ориентироваться в тонкостях vue и сопутствующих библиотек.
Ну а дальше, конечно, постоянное использование всех источников, о которых написал автор.
0
Ожидал увидеть здесь настройку webpack-a.

В свое время изрядно пришлось поковыряться с вебпаком, когда только знакомился с Vue, в контексте однофайловых компонентов.
-2
В официальном roadmap написано: «High level API remains as close to 2.x as possible.»

Что, React Hooks прям отменяет и lifecycle, и JSX, и HOC? Создатели сами пишут, что внедрять рекомендуется неспешно, основная парадигма программирования на React не меняется. И, естественно, нужно поддерживать тонны старого кода на классах. Кроме того, можно продолжать писать новый код на тех же классах.


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


Хуки лишь более удобный способ реализации one-directional data flow на практике. С чего бы вдруг суть шкуры реакта изменится?


Вы все правы!

Но «новая шкура» — а фактически новый синтаксис — это фактически новый фреймворк.

Тут аналогия проста — если вы умеете «танцевать вальс» писать на простом JS, то конечно вы научитесь запросто(?) «танцевать брейк-данс» использовать любой фрейворк. Не? ;-)

Но если заказчику нужен знающий React with Hooks — он может(!) не ждать пока вы его освоите. А сразу взять на рынке программиста имеющего опыт программирования на React with Hooks. Ведь так! Не?

Что касаемо классов и то «что работает, то будет работать» и «нужно поддерживать тонны старого кода на классах» — кому нужно? Вам? — Поддерживайте.

Те кто НЕ знает про классы ничего — тому не нужно, он изучит React with Hooks и устроится на работу, опередив вас, пока вы будете поддерживать «тонны старого кода на классах» — того кода, который FB не будет развивать вовсе. — Вы хотите себя успокоить этим? Не? — У вас большой опыт работы с классами, опыт, который сейчас нужен чтобы «поддерживать тонны старого кода на классах», но который не будет стоить ни копейки через год, другой. — Вам это нужно? Не?

Кого вы хотите успокоить тем, что ваши знания через год другой будут никому не нужны (ну, только тем кто отстанет и останется на старом синтаксисе, на классах и прочем хламе истории)?

Все — эти «успокаивающие мантры» типа — «Хуки лишь более удобный способ» (а они меняют всё!) или «будет работать как минимум до следующего мажорного релиза» (это сколько? — год? месяц? — а потом?) или "«High level API remains as close to 2.x as possible.»" (как только возможно, мы постараемся, только не уходите от нас?) Не?

Все — эти "успокаивающие мантры" — не более чем призыв — мы резко изменились, но оставайтесь с нами!

P.S.
Все европейские языки происходят из санскрита.

Знания санскрита поможет вам читать на английском?

Английский язык — наиболее изменившийся язык, который почти всё утратил от санскрита.

Литовский язык — наиболее сохранивший хоть какие-то связи с санскритом.

Русский язык потерял больше связей с санскритом, чем белорусский и украинский языки.

Языки растут не как дерево (ветки и веточки) — а как осока — все из одного корня — это новая парадигма языковедения, чтобы НЕ обидеть никого, никакой язык.

А вообще, санскрит прост. ;-)

P.P.S.
А те кто говорят — «ничего не изменилось» — вы просто возмите код программы написанный по старому и по новому и сравните, просто сравните. Чисто зрительно — вы можете это прочесть? — Прочесть и понять?

+2
Для меня, фронтовика с 20-летним стажем, произошла революция. Появилась прекрасная возможность разрабатывать в стиле data-driven programming. Данные — это то, что я хочу держать в абсолютном порядке, все остальное уже не так важно. В данный момент я использую Vue+Vuex. Не было бы Vue, пользовался бы React+Redux или любое другое сочетание, где данные стоят во главе всего.
0
Ребята, что скажете насчет Angluar?

Какой версии? ;-)

Это монстр.
Всё из коробки.
Не взлетает и уже не взлетит — вангую.
Нишевый продукт — и чем дальше тем его ниша будет глубже и меньше (в %).
Кто повёлся на него — тому жалко терять свои знания и он продолжает…
Не хайповый.
Будет не раз переписан заново — вангую.
+1
Какой версии? ;-)

8

ну вакансий полно на него, больше чем на vue
0
Жуткая переусложнённая вещь. Но, однако, пользуется спросом на рынке, поэтому приходится учить
Only those users with full accounts are able to leave comments., please.