Javascript фреймворки — дань моде или быстрота и удобство?

Мир front-enda как-то внезапно охватила волна js фреймворков (React, Angular, Vue, ...).

Как пишут на хабре:

JavaScript фреймворки могут стать палочкой выручалочкой для быстрой разработки веб-приложений


Правильно ли я понимаю, что веб-приложение - это многостраничный сайт типа airbnb, amazon, uber, и прочие сервисы с online заказами, расчетами, ... ?

Что же такое веб-приложение?

Хорошо, если так, то можно предположить, что для таких сервисов js фреймворки действительно удобны. Над ними работает большая команда разработчиков, но ведь сейчас многие заказы на биржах с просьбой применять js фреймворки для верстки интернет магазинов и чуть ли не для лендингов.
Просто потому что это модно?

Не проще ли создавать страницы с использованием лишь html,css, js и не быстрее ли так будет, нежели настраивать сборщик, создавать template по разным папкам?

Пока что аж страшно начинать учить js фреймворки из-за громоздкости одной лишь настройки проекта.

А вот код одного из такого приложения:

<template is="light-core-template" shadow-dom="" parent-tag="my-application" ready="">
<light-core-ajax src="{{configUrl}}" on-success="_configLoaded"></light-core-ajax>
<template is="light-core-template" if="{{content !== null}}">
	<light-core-state-machine>
	    <light-core-state state="page" on-state-change="_onPageChange" route="(/:page)">
	    <light-core-state state="product" on-state-change="_onProductChange">
	    <light-core-state state="about" on-state-change="_onAboutChange">
	</light-core-state></light-core-state></light-core-state></light-core-state-machine>
</template>


<template is="light-core-template" if="{{showScene}}">
	<main id="main" role="main" class="u-fixed u-pos-tl c-stack-wrapper c-draggable  {{isMenuActive ? 'is-zoomed-out' : ''}}">
		<app-slideshow current-index="{{currentSceneIndex}}">
			<app-slide id="about-region" disable="false" class="u-viewport-fit-w u-pos-b u-absolute u-pos-tl u-overflow c-stack is-prev">
			   ...


Валидно ли это, зачем тогда вообще html, если благодаря js фреймворкам все верстается кастомными тегами (template) ?

Такое ощущение, что программисты не упрощают себе возможность разработки, а наоборот усложняют с каждым годом.
  • Вопрос задан
  • 4374 просмотра
Пригласить эксперта
Ответы на вопрос 9
@maxbublik
JS фреймворки уже несколько лет - это будни фронтэнда, и это не мода, и это никуда не уйдет. Также как никуда не уйдет традиционная верстка. Они будут жить вместе. Четкую границу между веб-сайтами и веб-приложениями провести нельзя, но суть вопроса автора вопроса понятна.

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

Сам Vue фреймворк и свой код Vue-виджетов нет необходимости всегда собирать. Шаблоны для Vue не похожи на кошмар, приведенный в листинге. Все верстать кастомными тегами не обязательно, по мне, так это тоже клиника. Да, в продуктив все равно придется собирать, и сборка всегда сложная, и это якорь, который еще несколько лет придется тащить, но со временем втягиваешься, скрипт сборки кочует из проекта в проект. Со сборкой придется потерпеть.

Короче, если вы верстаете но на JavaScript ничего сложней jQuery вы не умеете, то вы в заднице. И каждый год вы все глубже.
Ответ написан
Комментировать
@devunion
И я вставлю 5 копеек о пользе Vue. Несколько лет назад начинал изучать Angular. Пришел к выводу, что есть идеи интересные, но как-то все сделано через одно место. Плюнул. Продолжал использовать jQuery (надеюсь, что необходимость использования jQuery или подобных библиотек вопросов не вызывает. Оптимизировать производительность можно долго и эффективно уже потом, когда это реально понадобится. В большинстве случаев до оптимизации дело вообще не доходит). Потом посмотрел Vue. Понравилось. Стал использовать в различных проектах. Раньше начинал делать простые проекты на jQuery т.к. необходимости тащить фреймворк вроде бы как и нет. В дальнейшем оказывалось, что при развитии проекта jQuery уже не удовлетворял всем потребностям. Переписывал на Vue. Наверное, в будущем буду сразу все писать на Vue и не заморачиваться.

Вывод: попробуйте, не пожалеете!
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
но ведь сейчас многие заказы на биржах с просьбой применять js фреймворки для верстки интернет магазинов и чуть ли не для лендингов.
Просто потому что это модно?
ДА. И ничего более...

Такое ощущение, что программисты не упрощают себе возможность разработки, а наоборот усложняют с каждым годом.
ДА. Верно говорите! Текущий тренд: задача - не сделать (быстро и хорошо), задача - заработать (всем и по-больше).

1. Всё можно сделать на нативе (vanilla.js, pure js). В крайнем случае - на том же Jquery.
Главное - корректно строить архитектуру.

2. Финансовая сторона вопроса: приучают к своему фреймворку и PR-ят везде для того, чтобы затем:
  1. проводить по нему платное обучение молодых IT-специалистов,
  2. выпускать и продавать книги,
  3. создавать на нём платные плагины,
  4. делать платные разработки.
  5. создавать центры платной сертификации


PS: имеет смысл что-то разрабатывать из фреймворков, если этого нет "из-коробки" и создавать с максимально простым пониманием и использованием инструмента.
Вот пример моего модуля (на "чистом" js): includeHTML (всего 1 функция...).
Ответ написан
Мне лично значительно проще написать относительно сложный лэндинг с различными анимациями на nuxt.js (vue.js + SSR), чем на чистом js. Что уж говорить о более навороченных сайтах. И я в целом знаю о чём говорю. Недавно переписывал один проект на vue.js, который до этого я же сам и писал на php + jquery. И для себя отметил, что очень многие моменты, на которых я застревал на несколько дней с jquery - с vue.js решались в пару строк кода. Это действительно удобно.

P.S: проект на vue.js разворачивается за 3 минуты с помощью vue-cli, а с nuxt'ом за то же время ещё и с настроенным серверным рендерингом.

P.S.S: да, и тут есть некоторые подводные камни и на их разбор может потребоваться время, но их в разы меньше и постепенно ты начинаешь думать уже над другими, куда более сложными и важными вопросами.
Ответ написан
@Programmir
Дань моде. Всё можно сделать и на jquery. Пробовал изучать react, vue - муть какая-то. Непонятно, зачем они нужны, только усложняют всё.
Ответ написан
@alexmixaylov
Не проще ли создавать страницы с использованием лишь html,css, js

возможно в чем то и попроще, но используя те же самые CSS препроцессоры типа LESS или SASS
вы значительно упрощаете себе жизнь используя хотя бы переменные и миксины
а если нужно что то Изменить, а такое часто бывает....
то же самое с JS, если использовать тот же VUE (ангулар и реакт намного сложнее) можно избавить себя от написания с нуля рутинных задач
Ответ написан
@dplsoft
имхо, тут несколько аспектов.
надо понимать что джаваскрипт полезен, но "переоценен". его пихают куда только ни попадя, даже туда куда он нафиг не нужен в тех количесвах в которых это впихивают. а потом имеют говнокод, который никто кроме автора не способен понять как оно работает.

отсюда и правильное понимание про джаваскрипт-фреймворки : это необходимость, которую возвели в ранг моды и активно это мусссируют.

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

почему вы думаете jQuery живее всез живых? это наличии мегатонн всяких супер пупер навороченных фреймворков? потому что он относительно прост и понятен. у него не самая лучшая наверное архитектура, он не самых идеальных принципов в части шаблонов проектирования, но он прост, позволяет тут и сейчас решить твои проблемы, не выворачивая твою серверную часть раком наизнанку ради соблюдения очередной фичи мега красивой архитектры, которая пришла откровением архитектору какого нибудь ангуляра, и без котрой этот мега комбайн нп работает.

декларативные шаблоны, "правильное" mvc (естественно правильное в мозгах автора-теоретика фреймворка), динамический рендерг элементов в больших списках... это все красиво только в формате курсовой после 2х семестров обучения, а когда у тебя в итоге в итоге ctrl-f на странице не работает и тебе клиент мозг ест, а все что ты можешь сказать - это "так устроен фреймворк отображаюй список элементов" - вот это уже совершенно не смешно, это джаваскрипт головного мозга авторов таких страниц, извините )))

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

хотя если ваша задача - "обеспечить себе пожизненную струю дохода", так, что бы выворачивать клиенту руки и шантажировать его "не повысите зп - я свалю в туман" потому что с вашим подеелием больше никто не в состоянии работать, потому что то что ты наворотил в принципе не поддерживаемо и это никто не понимает кроме тебя - тогда конечно вооружайттесь кучей модных фремворков, будьте в тренде и делайте все на правильных фреймфорках, пускайте пыль в глаза... и да поможет вам удача не быть прибитым за углом вашими же клиентами.))
Ответ написан
Комментировать
ozknemoy
@ozknemoy
яваскриптист
для приложений и сложных сайтов фреймворки, для обычных сайтов jquery. самое интересное где та граница сложно/просто
Ответ написан
Комментировать
nurbek_nurjanov
@nurbek_nurjanov
Yii developer
Никто вам нормально не ответил.

Зачем нужен spa - это жестко разделить работу на бакенд и фронтенд.
Резко в 100 раз сокращается работа бакендщика. Не в 2, не в 3, а в 100 раз грубо говоря.
Потому что бакенд уже не занимается генерацией html кода. Бакенд на себя берет только рестфулл и все.
Все остальное сам фронтендщик херачит.

И это гуд, когда котлета отделена от наглой мухи. :))
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы