Andrey
А если сверху докинуть какой-то поиск по элементам, а справа некую карту, которая тоже со списком работает, получается, дофига html внутри js. И будет что-то дикое с плюсиками и innerHtml
Am
С таким подходом тогда vue пригодится. ((% Тут же вопрос больше в организации проекта. Можно, например, сделать только кнопки по которым отдавать уже обработанный на сервере шаблон. Т.е. жмет пользователь на кнопку, посылает данные по аякс для обработки на сервер, обрабатывается и обратно шлет готовый шаблон. В этом случае нужно будет только одной строкой js добавлять куда нужно данные. Думаю, можно много чего придумать и дальше. Все проблемы, в основном, в этих моментах от не правильного разделения обязанностей. Это уже какое-то SPA получается.
Andrey
Ну я просто на будущее подумал, что логичнее отдавать json. Но вообще да, можно и сервером рендерить.
Am
Можно всем чем угодно, тут больше вопрос что именно нужно и подходит. Json удобнее там где нужны разные каналы обработки данных, т.е. там где на эти данные будет спрос.
Am
А про будущее, всё-таки в программировании лучше руководствоваться тем что "лучший код тот - которого нет". Т.е. когда кода нет, то не будет ошибок, а не в том смысле что не будет работать. ((%
Oleg
Я за vue. У меня ровно та же задача сейчас. Я могу с сервера отдавать html или могу отдавать только данные, json, а рендерить в браузере. Придумывать свой рендер не хочу, jQuery уже не котируется. Так что выбрал vue. И даже если использовать его только для рендера элементов - уже получается так удобно, что я немного удивлен
Andrey
Как бы и правда SPA не вышло, тьфу-тьфу, чтобы не сглазить.
Am
В самом простом случае, есть например форма в которой пользователь ввел логин-пароль. Из этой формы аяксом отправляем запрос на сервер, проверяем и возвращаем кусок шаблона, а сам шаблон лежит в виде файла в который передаются данные, генерится html и отдается обратно. Показываем эти данные пользователю в нужном месте. Дальше он уже работает с показанной формой. ((% По сути тоже делает и vue, тут уже дело сложности форм и поддержки. ((%
Am
Вот и всё SPA и без vue. ((%
Andrey
Только при этом шаблонизацию данных надо наворотить в js.
Am
Зачем? Скорее всего мы по разному на задачу смотрим. У меня больше упрощений, а у Вас какая-то реальная мысль которой не делитесь. ((%
Артур
Читаю я вашу беседу и понимаю, что идея @Ambrion мне понятна, а вот для чего нужен vue для меня загадка. Какой смысл в spa, если данные нужно где-то брать?
Andrey
А в spa они типа сами зарождаются
Am
Читаю я вашу беседу и понимаю, что идея @Ambrion мне понятна, а вот для чего нужен vue для меня загадка. Какой смысл в spa, если данные нужно где-то брать?
Данные то всегда нужно где-то брать. Просто vue помогает передавать эти данные удобно в приложении. Все равно нужно писать шаблон с разметкой data-driven и т.д.
Am
В SPA компоненты загружаются один раз, а дальше подгружают данные по необходимости. Мой пример больше был к тому что не всем это SPA нужно, а кто знает как может работать SPA у того выбор редко, наверное, встает что выбрать vue или js. ((%
Dmytro
SPA это перенос роутинга и шаблонизатора на фронтенд
Dmytro
Полезно тем что снижает нагрузку с серверов перекладывая на браузер юзеров, что при хайлоаде очень важно
Артур
Данные то всегда нужно где-то брать. Просто vue помогает передавать эти данные удобно в приложении. Все равно нужно писать шаблон с разметкой data-driven и т.д.
У вас есть пример практической задачи для которой Vue удобнее чем чистый js? Я брался за изучение Vue, но так и не понял для чего он мне может быть нужен. Если на сайтах можно возвращать готовый шаблон отрендеренный на php и, как вы сказали, одной строкой js вставлять куда надо. Или возвращать json и расставлять куда надо.
Dmytro
Facebook вам как пример :)
Dmytro
Так же зачастую проще с CRM
Артур
Facebook вам как пример :)
Я давно там не был, он перестал тормозить?😁
Dmytro
Я давно там не был, он перестал тормозить?😁
Суть в том что если б он был не SPA то нужно было бы больше серверов и шире канал :)
Am
Я давно там не был, он перестал тормозить?😁
Там же SPA он создан для того чтобы у Вас тормозить, ведь роутинг и шаблонизатор обрабатывается локально, как говорят. ((%
Dmytro
А еще удобно разносить работу на разные независимые куски
Артур
как минимум реактивностью-)
Всю вёрстку пихать в компоненты, чтобы формы реактивными были? Как-то перебор.
Am
Суть в том что если б он был не SPA то нужно было бы больше серверов и шире канал :)
Думаю, там проблема не только в этом. Больше масштаб приложения и большая возможность взаимодействия с пользовательскими данными.
Dmytro
Итого совместив все факторы понимаем что подход вполне жизнеспособный единственная проблема это SEO с ним до сих пор есть много открытых вопросов в SPA
Артур
хреново вы понимаете слово реактивность-)
Я понимаю это как обновление грубо говоря внешнего вида страницы в зависимости от действий пользователя
Am
У меня вывод иной. Когда совмещаю факторы, то понимаю что не нужно использовать vue там где можно обойтись js. ((:
Артур
Evgeny
для этого есть SSR
Dmytro
Andrey
Медуза вся на каком-то фреймворке. Очень посещаемый сайт
Артур
У меня вывод иной. Когда совмещаю факторы, то понимаю что не нужно использовать vue там где можно обойтись js. ((:
Пока единственная ситуация где нужен vue это высокая нагрузка на сервер. Точнее высокая посещаемость.
Andrey
Артур, мой вопрос про шаблон выше. Как? Я без прикола спрашиваю, надобность
Am
Я понимаю это как обновление грубо говоря внешнего вида страницы в зависимости от действий пользователя
Основное отличие реактивности в том, в частности vue, что рендеринг происходит в нужных местах именно после того как изменяются данные. Автоматически.
Сергей
Пока единственная ситуация где нужен vue это высокая нагрузка на сервер. Точнее высокая посещаемость.
Использование вью не ограничено только spa. Его вполне можно юзать для отдельных блоков на странице. Например, для каких-то сложных калькуляторов и т.п.
Alexey
Ребята привет! Нужно сделать парсер из файла для сайта на эволюшене. Отпишите в лс кто профессионально этим занимается. Скину ТЗ для оценки стоимости и сроков
Сергей
Я сейчас в постельке с телефоном. Но я довольно часто использую вью на простых, многостраничных сайтах. Калькуляторы. Интерактивные блоки. Просто с ним намного проще писать интерфейсы.
Am
В vue есть киллер фича - однофайловые компоненты. Это когда в одном файле есть разметка, стиль и сам скрипт. Типа удобно отлаживать. Выглядит дико сначала, а потом уже привыкаешь.
Evgeny
надо понимать что калькуляторы пишут проще на вью чем на чистом js
Am
Видел. Удобно. Но кажется говнокодом😁
Так и есть в некоторых случаях. ((% Использование vue не помогает не говнокодить.
Артур
надо понимать что калькуляторы пишут проще на вью чем на чистом js
Возможно, но ради одного калькулятора если он должен быть на каждой странице подключать целый Vue не перебор?
Am
У меня у самого правило в шаблонах так делать. Т.е. в twig шаблоне есть сам html, плюс js который этот шаблон обслуживает и стили. Все в своих секциях.
Артур
Так и есть в некоторых случаях. ((% Использование vue не помогает не говнокодить.
Я имею ввиду, что такая возможность есть, но мне кажется так лучше не делать
Сергей
Хорошо, интерфейсы удобнее писать, а как вы решаете проблему с роботами? Или роутинг вы не используете?
Когда я говорю про отдельные блоки на странице, то для них обычно не важно сео. Взять калькулятор стоимости услуг или сложную многостраничных форму Когда речь идёт о СПА, то тут уже делаем по фен-шую, с серверным рендером.
Am
Я имею ввиду, что такая возможность есть, но мне кажется так лучше не делать
В случае с vue так удобнее делать, т.к. помогает отлаживать код и структурировать все приложение. Писал выше что делаю так и без vue и до vue делал. ((%
Am
Evgeny
я видел проекты где jquery + vue- )
Evgeny
причем второе использует методы vue-)
Артур
Не более, чем под ключить джиквери :)
Я отказался от него, к сожалению некоторые сторонние компоненты её используют, поэтому она есть и убрать её я не могу, точнее могу но надо будет всё писать самому а это прям много😁
Сергей
А как серверный рендеринг решает вопрос с СЕО для SPA?
Думаю вам стоит почитать что такое серверный рендер. Кратко: мы отдаем по запрошенному адресу готовый хтмл, который поисковые роботы прекрасно умеют читат
Am
я видел проекты где jquery + vue- )
Видимо, что знали так и делали. Это нормально. Сам vue построен так что позволяет не переходить на него сразу. Может где-то просто денег не хватило или не нужно трогать, т.к. уже легаси и фиг знает где оно еще проросло.
Артур
Думаю вам стоит почитать что такое серверный рендер. Кратко: мы отдаем по запрошенному адресу готовый хтмл, который поисковые роботы прекрасно умеют читат
Ну, а как тогда работает SPA, там же смысл в том, что мы получаем данные с сервера и в зависимости от того, что получили рисуем страницу?
Сергей
Ну, а как тогда работает SPA, там же смысл в том, что мы получаем данные с сервера и в зависимости от того, что получили рисуем страницу?
Да. Верно. А ssr прямо на сервере рисует страницу и отдает готовый хтмл. В этом его суть. Фишка в том что рендерится на сервере только первая запрошенная страница, а дальше работает клиентский роутинг. Для поисковых роботов получается всегда запрашивается страница и они всегда получают полный хтмл.
Andrey
Так а почему ты возвращаешь json, а не HTML?
Потому что данные используются в двух местах. Список товаров и их положение на карте, т.е. координаты.
Артур
Потому что данные используются в двух местах. Список товаров и их положение на карте, т.е. координаты.
Почему нельзя сделать два блока с html список и координаты? Или координаты отдать массивом и потом массив этот передать в функцию которая рендерит карту или расставляет точки
Andrey
Потому что потом я буду скажем искать по списку. Или выделять по карте. И в обоих случаях мне надо будет снова делать 2 запроса: на точки карты на список итемов.
Артур
Потому что потом я буду скажем искать по списку. Или выделять по карте. И в обоих случаях мне надо будет снова делать 2 запроса: на точки карты на список итемов.
Почему два запроса? На списке и на карте по своему обработчику, который будет отправлять запрос и перерисовать карту и список.
Andrey
Считаем 1) на карте 2)список.
Артур
Считаем 1) на карте 2)список.
Это обработчики событий, а зачем 2 запроса?
Andrey
"координаты отдать массивом и потом массив этот передать в функцию" — именно так всё и есть сейчас. А хочется из этого же массива формировать список товаров. Потому что при поиске я опять буду вынужден делать 2 запроса. И они ещё и в разное время будут выполнены, т.е. начнётся пусть на секунду, но рассинхрон.