Наброшу. Я вообще ни в каком месте не фронтендер и этими вашими джаваскриптами не занимаюсь, но попалась маленькая годная шабашка на эту тему. Один раз - не смузихлеб, подумал я. И столкнулся с двумя стульями несколькими безальтернативными выборами:
1) Не берешь никаких JS UI-фреймворков, получаешь портянку на jQuery (или без, на вкус), где чтобы добавить элемент в список его HTML код надо записать в JS-коде строками, как-нибудь добавить нужные данные (хоть конкатенацией), и веселиться с innerHTML, appendChild и прочим.
2) Берешь UI-фреймворк и вроде все сразу проще и лучше, но они жирные (хрен бы с этим), требуют каких-никаких ресурсов, и самое главное, это дерьмо надо изучить и потом ты оказываешься зажатым в его рамках.
Я сел на второй стул и стал выбирать фреймворк. Проект слишком простой, чтобы упарываться по полной, но на всяких jQuery будет адская портянка.
Angular я не захотел, потому что как-то сталкивался и от его DSL с всякими ngIf, ngForOf и формами меня тошнит, а еще он излишне большой и сложный, модули, DI, нахер не упало.
React я как-то видел, прикольная херня, но ебота с неизменяемыми состояниями (которая типо плюс). Поменять значение элемента в списке как-то не доставляет.
Я остановил свой выбор на Riot.js. Эдакий React на минималках. Синтаксис между ангуляром и реактом, простой ненавязчивый шаблонизатор из всего DSL в нем только if={}, each={} и т.п. Никакой еботы, никаких неизменяемых состояний, просто берешь и делаешь. Ну заодно он самый легкий из них. Вин?
Авотхуй. В процессе выяснилось, что хоть этот кусок дерьма развивается уже давно по меркам жс-фреймворков, в нем нахуй не работают sourcemap'ы (ну или работают через их блядский компилятор. Но не вебпаком). И я так и не смог прикрутить TypeScript. А еще одно супер-неочевидное поведение убило у меня целый день. Если присвоить элементу какое-то значение два раза одно и то же он игнорирует это, оптимизатор хуев. В итоге сделать по кнопке стирание введенного пользователем текста путем присваивания "" (пустой строки) - хуй. Извращайтесь.
Следующий раз для маленького проекта можешь взять ангуляр 1.7. Вполне простая штука, без страшных компонентов(но если сильно нужны - они там есть), тайпскрипта, и с простыми шаблонами с кучей возможностей.
Это в котором как раз всякие директивы, отдельно какие-то контроллеры и прочая MVC-хрень? Но читал я о нем давно, еще до выхода Angular 2, который мне показался чуть более логичным и единообразным в этом плане.
А есть ли что-нибудь что берет на себя только роль блядского шаблонизатора, чтобы всякие ифы, циклы, текст да классы css без боли подставлять? Собственно, на этом мои потребности заканчиваются.
Т.к. я профессионально никогда фронтендом не занимался, может быть что-то не знаю. Но как сделать, к примеру, такое:
Есть какой-нибудь контейнер, пусть div, хранящий какой-нибудь список элементов. Где у элемента есть название, обработчик клика, какой-нибудь обработчик удаления и еще что-нибудь в этом духе. Единственный приходящий мне в голову вариант сделать это на голом JS/jQuery это:
const div = document.getElementById('divID');
div.innerHTML += '
' +new_element.title + ' возможно дохуя кода
';
Выглядит как дерьмо, писать трудно, менять трудно, ошибиться легко, всё это ебучая строка без подсветки синтаксиса итп итд. Вместо этого хотелось бы что-то вроде
{element.title}
возможно дохуя кода
или
Послать нахуй
Нувыпоняли. Вот такую хуйню позволяет делать Riot.js, не ебя при этом голову иммутабельностью, редуксом или не таща за собой 100500 лишних библиотек для DI, роутинга-хуеудинга, валидации ебучих форм итп итд.
Он прикольный, в целом. Можно подключить просто скрипт и он будет билдить тэги (местный JSX наоборот) в браузере, без всяких этих ваших вебпаков. Можно сбилдить локально их утилитой. Но вот попытка прикрутить вебпак оборачивается болью. Но с ним все-таки удобно, плюс над стилями извращаться и все такое.
Доводилось мне как-то переводить пару проектов с Vue 1.x на 2.x - уж лучше портянку на jquery. Я с фронтом завязал, но слышал сейчас планируется обнова с Vue 2.x на 3.x, с нацеливанием "...на использование этих новых языковых функций, чтобы сделать ядро Vue меньше, быстрее и мощнее"(@habr) - имхо, конечно, но нахер такое счастье.
ну вот хочется пришельцам из других областей поиграться в ООП в вебе, даже в простых лендингах или магазинах.
извращенцы-с.
немножко оффтопа, на днях ко мне товарищ за консультацией обратился: сверстал он несколько лендингов, заказчик хочет ssl, и желательно бесплатно. Спрашиваю - зачем? у лендинга есть логинация? админка? нету, просто одностраничник. С формами из одного поля для телефона "мы вам перезвоним". Зачем ему шифрование??? Ну, чтобы "сайт защитить от хакеров" и красивенько, зелёненьким подсвечивает...
ты не понимаешь.
заказчику нужно не шифрование, а название протокола https в строке адреса и, блять, "зелененький замочек".
потому что так все сейчас делают.
маркенинг-с
Ибо гугл планомерно продвигает концепцию "нахуй http". Сейчас хрмо уже даже зеленый замочек не рисует, мол "HTTPS - это не более безопасно, это как раз норма, а вот HTTP - не безопасно". Вроде планируют дойти до того, что на страницах по HTTP показывать предупреждение (или на страницах с HTTP, где есть формы ввода).
На счёт ssl тут как бы понятно )
Если откинуть, типо доверие улучшается + поисковики лучше ранжируют на https, хотя LP не для поисковиков.
Но и реффереры/запорсы и тп передается с того же https://google.com и не передается с https -> http без спец meta в первом. А это уже на статистику влияет при покупке трафа с https сайтов хотя бы даже с поиска гугля Adword. Можно видеть по каким запросам результаты лучше ROI дают и тп.
PS: Ещё забыл добавить из VK если на ssh покупать будет видно будет профили кто заходил ) а следовательно по ним можно потом пройтись рекламным профилем лайкая.
А нахера каждый раз передавать в функцию структуру данных, если можно в этой же структуре хранить связанные с ней функции? Потому что это проще и удобнее в большом ряду случаев.
ООП не ложится на бизнес, им удобно классифицировать/генерализовать алгоритмы или группировать классы со схожим поведением. А если ты не веришь, то подумай несколько натужно оопешники приходят к доменным моделям , если вообще их делают. Вот и остаются алгоритмы и круды.
Тебе и классик жабаскрипта хватит, написать пару функций для упрощения написания дивов и все. Просто фронтенд разрабы еще те извращенцы, которые вместо изучения чего-то интересного любят дрочить синтаксис фреймворков.
Ага, и потом смотришь в файл с JQ функциями размером в 3 тысячи строк и думаешь, а если я вот сейчас тот див удалю, не поломается ли селектор в какой-то из функций.
» 4 in l <- false
Programmer Memes
@iammemeloper
Without a doubt, the best programming language
11:09 PM -Sep28, 2023 121.6K ¡ews
» let l = [1,2,3,4]
<- undefined
» 0 in l <- true
» "0" in l <- true
двумя стульяминесколькими безальтернативными выборами:1) Не берешь никаких JS UI-фреймворков, получаешь портянку на jQuery (или без, на вкус), где чтобы добавить элемент в список его HTML код надо записать в JS-коде строками, как-нибудь добавить нужные данные (хоть конкатенацией), и веселиться с innerHTML, appendChild и прочим.
2) Берешь UI-фреймворк и вроде все сразу проще и лучше, но они жирные (хрен бы с этим), требуют каких-никаких ресурсов, и самое главное, это дерьмо надо изучить и потом ты оказываешься зажатым в его рамках.
Я сел на второй стул и стал выбирать фреймворк. Проект слишком простой, чтобы упарываться по полной, но на всяких jQuery будет адская портянка.
Angular я не захотел, потому что как-то сталкивался и от его DSL с всякими ngIf, ngForOf и формами меня тошнит, а еще он излишне большой и сложный, модули, DI, нахер не упало.
React я как-то видел, прикольная херня, но ебота с неизменяемыми состояниями (которая типо плюс). Поменять значение элемента в списке как-то не доставляет.
Я остановил свой выбор на Riot.js. Эдакий React на минималках. Синтаксис между ангуляром и реактом, простой ненавязчивый шаблонизатор из всего DSL в нем только if={}, each={} и т.п. Никакой еботы, никаких неизменяемых состояний, просто берешь и делаешь. Ну заодно он самый легкий из них. Вин?
Авотхуй. В процессе выяснилось, что хоть этот кусок дерьма развивается уже давно по меркам жс-фреймворков, в нем нахуй не работают sourcemap'ы (ну или работают через их блядский компилятор. Но не вебпаком). И я так и не смог прикрутить TypeScript. А еще одно супер-неочевидное поведение убило у меня целый день. Если присвоить элементу какое-то значение два раза одно и то же он игнорирует это, оптимизатор хуев. В итоге сделать по кнопке стирание введенного пользователем текста путем присваивания "" (пустой строки) - хуй. Извращайтесь.
Резюмируя:
А есть ли что-нибудь что берет на себя только роль блядского шаблонизатора, чтобы всякие ифы, циклы, текст да классы css без боли подставлять? Собственно, на этом мои потребности заканчиваются.
Есть какой-нибудь контейнер, пусть div, хранящий какой-нибудь список элементов. Где у элемента есть название, обработчик клика, какой-нибудь обработчик удаления и еще что-нибудь в этом духе. Единственный приходящий мне в голову вариант сделать это на голом JS/jQuery это:
const div = document.getElementById('divID');
div.innerHTML += '
Выглядит как дерьмо, писать трудно, менять трудно, ошибиться легко, всё это ебучая строка без подсветки синтаксиса итп итд. Вместо этого хотелось бы что-то вроде
{element.title}
возможно дохуя кода
или
Послать нахуй
Нувыпоняли. Вот такую хуйню позволяет делать Riot.js, не ебя при этом голову иммутабельностью, редуксом или не таща за собой 100500 лишних библиотек для DI, роутинга-хуеудинга, валидации ебучих форм итп итд.
А нафига классы, если есть функции, нахера ООП.
извращенцы-с.
немножко оффтопа, на днях ко мне товарищ за консультацией обратился: сверстал он несколько лендингов, заказчик хочет ssl, и желательно бесплатно. Спрашиваю - зачем? у лендинга есть логинация? админка? нету, просто одностраничник. С формами из одного поля для телефона "мы вам перезвоним". Зачем ему шифрование??? Ну, чтобы "сайт защитить от хакеров" и красивенько, зелёненьким подсвечивает...
заказчику нужно не шифрование, а название протокола https в строке адреса и, блять, "зелененький замочек".
потому что так все сейчас делают.
маркенинг-с
Если откинуть, типо доверие улучшается + поисковики лучше ранжируют на https, хотя LP не для поисковиков.
Но и реффереры/запорсы и тп передается с того же https://google.com и не передается с https -> http без спец meta в первом. А это уже на статистику влияет при покупке трафа с https сайтов хотя бы даже с поиска гугля Adword. Можно видеть по каким запросам результаты лучше ROI дают и тп.