«phpClub» — архив тем ("тредов"), посвящённых изучению PHP и веб-технологий.
Аноним 2022/05/24 18:30:48  №2362628 1
>>2362625
>простые морды, если я бэкендер
ПРостые морды для бэкендера это jquery + bootstrap, как показывает моя личная практика, лучше уж так чем говнокод на SPA.
Ответы: >>2362637
Аноним 2022/05/24 18:51:29  №2362637 2
>>2362628
Почему обязательно говнокод с vue? Пишу чисто, функционально на vue 3 как на реакте. С jquery у тебя в 99% случаев на проектах встретится говнокод. На жиквери можно компоненты писать в виде плагинов, но все любители жиквери предпочитают лапшу.

мимо
Ответы: >>2362642
Аноним 2022/05/24 18:57:46  №2362642 3
>>2362637
>функционально на vue 3
>как на реакте
Ты насрал в штаны, дружище. Во vue нет функциональных компонентов, а те, что там называются "функциональными" представляют из себя ничего более, чем статичную рендер-функцию без ветвлений внутри.
>С jquery у тебя в 99% случаев на проектах встретится говнокод.
У тебя и с реактом/вью 99% встретится говнокод, но в отличии от жиквары - он еще и будет с горой бойлерплейта, который без траты огромного количества времени не разберешь.
Ответы: >>2362645
Аноним 2022/05/24 19:04:58  №2362645 4
>>2362642
Извини, но я в твои в штаны не срал. Это ты сам наделал. cоmposition api позволяет функциональный код писать насколько это возможно в жс и даже использовать this не дает.
Ответы: >>2362646 >>2362648
Аноним 2022/05/24 19:10:02  №2362648 5
>>2362645
Потому что код полностью на функциях, без использования контекста. Тебе никто не мешает его использовать вместе с какой-нибудь ramdajs
Ответы: >>2362655 >>2363289
Аноним 2022/05/25 16:16:44  №2363289 6
>>2362648

Позвольте вмешаться. Не могу пройти мимо.

Вы почему-то ограничиваете выбор "хорошим" SPA на Vue и "ужасным" древним jQuery. Как будто нет других вариантов.

Но, на мой взгляд, реализация произвольного проекта как SPA имеет множество недостатков:

- очень медленная начальная загрузка, требующая передачи огромного объема данных
- при этом у разработчиков почему-то не хватает ума впечь нужные данные прямо в страницу, и они делают ajax-запросы
- разработчики не умеют правильно проектировать API, чтобы при переходах между страницами отправлялся бы единственный запрос, а не много
- страница не отображается при единственной ошибке в любом компоненте, в то время как при использовании HTML ошибка загрузки одного CSS/JS файла или картинки не препятствует отображению страницы
- с реактивным стилем написания кода легко сделать так, что приложение будет потреблять много CPU
- написание SPA требует по сути написать два приложения: серверное и клиентское. Значительно увеличивается объем работы.
- мне не нравится идея делать каждую кнопку отдельным файлом. Это выглядит красиво в концепции, но с таким кодом тяжело работать, прыгая по файлам на 10 строчек. Вы в коде тоже каждую функцию в отдельный файл выносите?
- необходимость возиться со сборщиками и упаковщиками кода. На большом проекте, конечно, они все равно понадобятся, но на маленьком можно обойтись и без них.
- проблемы с поисковой оптимизацией

Наконец, вы предполагаете, что использование реактивных фреймворков обеспечивает лучшую архитектуру. Но я открываю случайный блог и вижу, как автор пишет fetch() прямо в компоненте. Для тех, кто не понимает - это как если бы в PHP вы писали SQL-запросы и всю логику в HTML-шаблоне. Это вы называете лучшей архитектурой? Это же даже протестировать нормально не получится.

Или возьмите тот же Redux. Они предлагают сделать гигантский switch на 100 опций и на нажатие любой кнопки клонировать все состояние.

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

Лично мне из клиентских библиотек понравился preact (это не реакт). Его идея в том, что у него мало возможностей, но зато он весит всего несколько килобайт и позволяет при желании писать компоненты без компиляции и сборщиков. Если у вас есть простая интерактивная форма, то вполне возможно, что реализация одной формы на preact подойдет гораздо лучше, чем переделка всего приложения на SPA на популярном фреймворке, с весом бандлов под мегабайт и сложным процессом сборки.
Ответы: >>2363414
Аноним 2022/05/25 19:05:35  №2363414 7
>>2363289
>- очень медленная начальная загрузка, требующая передачи огромного объема данных
Решается SSR
>- при этом у разработчиков почему-то не хватает ума впечь нужные данные прямо в страницу, и они делают ajax-запросы
Решается фреймворками вроде next и nuxt
>разработчики не умеют правильно проектировать API, чтобы при переходах между страницами отправлялся бы единственный запрос, а не много
Решается http/2
>- страница не отображается при единственной ошибке в любом компоненте, в то время как при использовании HTML ошибка загрузки одного CSS/JS файла или картинки не препятствует отображению страницы
Во первых, нужно писать код таким образом, что бы он не выкидывал ошибки. Во вторых, в любом фреймворке есть возможность отлавливать ошибки аналогично try/catch и выводить юзеру соответствующую инфу/производить другое действие/etc.
>- написание SPA требует по сути написать два приложения: серверное и клиентское. Значительно увеличивается объем работы.
Не согласен. Ты в любом случае будешь писать клиентское приложение (html + js+css) и бэк (любой язык на твой выбор).
>- мне не нравится идея делать каждую кнопку отдельным файлом. Это выглядит красиво в концепции, но с таким кодом тяжело работать, прыгая по файлам на 10 строчек. Вы в коде тоже каждую функцию в отдельный файл выносите?
Ну так не делай, сделай в одном файле 20 кнопок и экспортируй. Кто тебе запрещает?
>- необходимость возиться со сборщиками и упаковщиками кода. На большом проекте, конечно, они все равно понадобятся, но на маленьком можно обойтись и без них.
Тут согласен, да. Я так с cmake не заморачивался как с вебпаком.
>- проблемы с поисковой оптимизацией
Решается SSR
>Это вы называете лучшей архитектурой?
Нет, выводить отдельную функцию для AJAX запроса и передавать данные из неё в компонент через контекст/провайдИнжекты накмного практичнее.
> Это же даже протестировать нормально не получится.
То, что fetch можно мокать ты не слышал?
>Они предлагают сделать гигантский switch на 100 опций и на нажатие любой кнопки клонировать все состояние.
Что ты понимаешь под "всем состоянием"? Тебе никто не мешает вывести в отдельное хранилище логику работы с кнопкой и мутировать только его.
>Если вы хотите сделать переход между страницами сайта без перезагрузки, то вам не нужен SPA.
Проиграл. Если вы хотите сделать Single Page Application вам не нужен SPA. Сам свои высеры читаешь?
> Если вы пишете интернет-магазин или развлекательный ресурс с постами и лайками, вам даром не нужен SPA
>Если же вы пишете высокоинтерактивное приложение, например, редактор электрических схем или мобильную версию Инстаграма, то вам пригодится SPA.
Тут даже без комментариев.

Ответы: >>2363567 >>2363725 >>2374485
Аноним 2022/05/26 02:16:52  №2363567 8
>>2363414
> Я так с cmake не заморачивался как с вебпаком.
Почему бы не использовать cmake вместо вебпака? Нахуя все жрут кактус?
мимо
Ответы: >>2363585 >>2363742
Аноним 2022/05/26 04:25:27  №2363585 9
>>2363567
Потому что в таком случае cmake будет использовать webpack. cmake - это замена gulp или grunt, а не вебпака.
Аноним 2022/05/26 07:50:08  №2363725 10
>>2363414
> Решается SSR
Как у ангуляра с SSR?
Ответы: >>2363741
Аноним 2022/05/26 08:07:01  №2363741 11
>>2363725
С SSR у него отлично, даже получше чем у рякта с вуем. А вот с изоморфным роутингом дела обстоят не очень...
Аноним 2022/05/26 08:09:32  №2363742 12
>>2363567
У вебпака лучше интеграция со всякими фронтовыми штуками, вроде SCSS, JSX/Vue, SVG, транспиляции под старые браузеры.
Аноним 2022/06/07 22:12:53  №2374485 13
>>2363414

>>Если вы хотите сделать переход между страницами сайта без перезагрузки, то вам не нужен SPA.
> Проиграл. Если вы хотите сделать Single Page Application вам не нужен SPA. Сам свои высеры читаешь?

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

Вконтакте, если мне не изменяет память, когда-то работал по такой схеме.

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

>>- очень медленная начальная загрузка, требующая передачи огромного объема данных
>Решается SSR
Мы придумали себе проблему и героически ее решаем.

>>разработчики не умеют правильно проектировать API, чтобы при переходах между страницами отправлялся бы единственный запрос, а не много
> Решается http/2
Это не поможет, если следующий запрос зависит от предыдущего.

> Не согласен. Ты в любом случае будешь писать клиентское приложение (html + js+css) и бэк (любой язык на твой выбор).

Да, только вывод данных на стороне сервера проще, так как нам не надо делать никаких аякс-запросов, нам не нужно никакое хранилище, не нужно поддерживать его в корректном состоянии ит.д. То есть, вывести профиль пользователя на сервере в разы проще, чем на клиенте.
Ответы: >>2374503 >>2386389
Аноним 2022/06/07 23:10:37  №2374503 14
>>2374485
А если тебе нужно вывести профиль пользователя, чат и проводки из бухучета, а на другой странице чат, баланс и интерактивные видоуроки по системе, а если нажимаешь на кружочек сверху, то чат уезжает в угол и счезает , а вместо чата открывается профиль пользователя, а если в проводках нажмешь на символ человечка, то открывается модальное окно с исхдящим звонком к коллеге, а если коллега начнет редактировать провоки у себя, то ты будешь видеть у себя изменения... абырвалг ... абырвалг ...
Аноним 2022/06/22 13:10:32  №2386389 15
>>2374485
>достаточно добавить известную библиотеку на десяток килобайт, которая перехватывает клики по ссылкам и грузит страницы аяксом. Мы получаем переходы без перезагрузки, отличную поисковую оптимизацию, не написав ни строчки клиентского кода.

что за библиотека?
Ответы: >>2387636
Аноним 2022/06/24 06:17:26  №2387636 16
>>2386160

Тебе браузер пишет - слишком много редиректов. Скорее всего твой сайт редиректит сам на себя.

Открой инструменты разработчика в браузере (F12) на вкладке Network, перезагрузи страницу и посмотри, что там выведется.

>>2386389

Пиджакс, на vanilla js, 6 Кб в сжатом виде. https://github.com/MoOx/pjax

Меня удивляет, что люди не знают про такую библиотеку и начинают изобретать велосипеды на реакте.
Ответы: >>2388622
Аноним 2022/06/25 10:49:55  №2388622 17
>>2386222
>>2387636
Спасибо, ошибка действительно была из-за непрвильно выставленного рута сайта