Задать вопрос
@M1Anderson
Ruby on Rails developer

В чем могут помочь js фреймворки(React, Angular)?

C MVC фреймворками все понятно, но они меня не интересуют. А что делать с инструментами, нацеленными больше на фронтенд (React, Angular) ?
За все время изучения они мне пригодились только для реализации вкладок, чтобы не перезагружать страницу, но это можно сделать и через jQuery.
Интересует:
  1. Были ли у вас практические задачи, с которыми мог справиться только js фреймворк? Какие?
  2. Могут ли быть полезны данные инструменты в совместной работе с Rails, например?
  3. Нужно ли вообще тратить время и искать себе задачи, которые можно решить привычным jQuery, который в большей степени знают все (вопрос дальнейшей поддержки) ?
  • Вопрос задан
  • 17654 просмотра
Подписаться 7 Оценить 1 комментарий
Решения вопроса 2
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
C MVC фреймворками все понятно, но они меня не интересуют. А что делать с инструментами, нацеленными больше на фронтенд (React, Angular) ?


Открою вам страшную тайну - MVC фреймворки как раз на фронтэнд и нацелены, а не на бэкэнд.

ReactJS - библиотека, а не фреймворк. Это вопервых. И решает эта библиотека задачу оптимизации взаимодействия с DOM при связывании данных между представлением и моделью данных.

Angular - полноценный фреймворк, к которому можно подключить тот же React для вьюх. Используют его в основном при реализации Single Page Application-ов.

Были ли у вас практические задачи, с которыми мог справиться только js фреймворк? Какие?

Все задачи можно решить на чем угодно. Вопрос в сроках и кривости. Angular позволяет организовать структуру приложения, разделить его на слои, предоставляет ViewModel... все то что писать с нуля маленький ад и скучно. Ну и опять же все можно покрыть тестами и т.д.

Могут ли быть полезны данные инструменты в совместной работе с Rails, например?

Если брать ангуляр - я его использую только в контексте SPA. Это может быть не все приложение а только какая-то его часть но все же... А для SPA разницы нет вообще на чем бэкэнд реализован. От бэкэнда нужна только апишка.

Реакт же можно использовать в принципе для построения view на клиенте. Так что можно и его юзать. Зависит от задачи. Скажем если в задачи входит организация работы жирной формы - то лучше взять knockout.js. А если вам нужно рендрить какие-то данные в реалтайме - можно вооружиться реактом.

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

Куча народу знает jQuery но не знает JS. И это грусть и печаль. Скорее всего если у вас в задачах стоит реализовать слайдер какой или что-то такое то ни Angular ни React вам не нужны. Ну или в контексте сайтиков тоже не особо есть от них польза (только в специфических случаях). А вот если пишите приложения какие-то, можно уже задуматься ибо если вам придется реализовывать весь бойлерплейт, да еще и не будет DI то с высокой долей вероятности (все же нормальные разработчики существуют) вы получите шматок гуано дико связанный и приносящий боль при рефакторинге. А еще использование только jQuery это на 99% отсутствие каких-либо тестов на фронтэнде.

p.s. Я на ангуляре пишу админки к примеру для своих проектов. Ну и все все все что вписывается в концепцию SPA. Реакт планирую использовать как альтернативу phonegap (react-native вышел), поскольку он является слоем абстракции над формированием представления (за счет промежуточного виртуального DOM).
Ответ написан
TekVanDo
@TekVanDo
Javascript Developer
1) Нет ни одной задачи которой нельзя решить на языке на котором он написан.
2) Могут.
3) Зависит от конкретной задачи.

p.s. почитайте про spa и думаю большинство вопросов отпадут.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@lega
это можно сделать и через jQuery.
Вот вам вопрос чтобы почувствовать: "Зачем вы используете Rails если тоже самое можно сделать и на asm или C? "

"Фреймворки" могут упростить, ускорить разработку. Попробуйте на jQuery сделать такой пример, обратите внимание что такие простые "задачи" можно делать вообще без использования JS-кода (т.е. шаблона достаточно).

Если вопрос "стоит ли изучать" - стоит (если вы делаете что-то серьезное на клиенте).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы