1. JavaScript / Говнокод #27109

    −1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    $(".mobile-filter__footer-popular-btn").on("click",function(e){
    e.preventDefault(),
    $("#header-mobile").addClass("blue"),
    $(this).addClass("active"),
    $("#filter-aside-mobile-category-popular").addClass("active")
    });
    $("#filter-aside-mobile-category-popular .catalog-mobile-menu__close").on("click",function(e){
    e.preventDefault(),
    $("#header-mobile").removeClass("blue"),
    $(".mobile-filter__footer-popular-btn").removeClass("active"),
    $("#filter-aside-mobile-category-popular").removeClass("active")
    })

    sdf

    Запостил: snegoviktlt, 12 Ноября 2020

    Комментарии (50) RSS

    • Теперь представь, сколько кода понадобилось бы написать, если бы нельзя было использовать jQuery.
      Ответить
    • Автор кода - "Конардо".
      Ответить
      • Нет, но я тоже презираю слабоумных, использующих отступы и тем самым косящих под Маяковского.
        Ответить
    • ей богу, лучше бы взяли реакт и сделали бы компоненты, чем завязываться на такие БЭМобразные классы и пихать в них "логику"
      Ответить
    • Вот он, дивный новый мир. Вместо того, чтоб писать разметку, ее генерят жукверями
      Ответить
      • на реакте разметку генерят реактом и всем норм
        Ответить
        • а на жуквере - жукверем
          Ответить
        • но всё же он не так пидорски выглядит, бо там она декларативна
          Ответить
          • Говорить что дрисня на js может быть декларативной это как надеяться что нигерийский принц пришлет деньги
            Ответить
            • JSX знаешь?
              Ответить
              • Да. Дрисня на js, несовместимая с html
                Ответить
                • Отличный "шаблонизатор" для декларативного описания гуя, да еще и со статической проверкой закрытости тегов (в отличие от всякой дринси типа html)

                  и кстати с пассивным вью, который обновляеца по модели, а это вообще божественный паттерн для веб мартышек
                  Ответить
                  • jsx не шаблонизатор
                    jsx сам по себе не имеет статических проверок, html имеет точно такие же внешние анализаторы
                    у реакта не пасивное вью которое обновляется по модели
                    и реакт не реактивный
                    Ответить
                    • >jsx не шаблонизатор
                      Разумеется, шаблонизатор:
                      <h1>Привет, мир!</h1>;


                      >jsx сам по себе не имеет статических проверок,
                      Разумеется, имеет
                      SyntaxError: jsx-file.js: Unterminated JSX contents (2:13)
                        1 | function foo() {
                      > 2 |   return <h1>Hello, Stranger;
                          |              ^
                        3 | }

                      >у реакта не пасивное вью которое обновляется по модели
                      Разумеется, пассивное: достаточно установить стейт модели, и оно обновится
                      https://thomasbandt.com/upload/mvu.png

                      >и реакт не реактивный
                      как скажешь
                      Ответить
                      • ладно когда рандомные петухи на говнокоде так говорят

                        но ведь так искренне считают 90% разрабов на реакте

                        какой пиздец (((
                        Ответить
                        • достойный слив
                          Ответить
                          • какой багор )))
                            Ответить
                            • спасибо за интересную дискуссию
                              Ответить
                              • из пары твоих коментов я определил что ты разбираешься в реакте примерно никак

                                и если бы в дискуссии оказалось что это не так, мое самомнение обрушилось бы и я бы загрустил
                                Ответить
                                • ты просто брыжжешь сливами сегодня, впору сливовый пирог делать
                                  Ответить
                                  • все коменты которые я написал были в этой ветке

                                    их не так и много
                                    Ответить
                                    • и каждый из них хлёстко и с фактами опроверг все мои анскильные заблуждения
                                      Ответить
                                      • зачем мне опровергать что-то если ты сам пишешь что это анскильные заблуждения
                                        Ответить
                      • >Разумеется, шаблонизатор

                        JSX не шаблонизатор потому что результатом его развертывания не является верстка. В реакте есть две фазы - рендер и коммит. Во время фазы рендера вызываются все эти jsx дрисни, транспилируются в React.createElement(...) и потом эти React.createElement разворачиваются в абстрактное дерево, изменения в котором высираются в DOM путем его мутации

                        То есть jsx не шаблонизатор потому что:
                        1) реакт не рендерит html, он использует апи браузера для мутаций DOM
                        2) при это jsx разворачивается не в html и даже не в вышеописанную js парашу и даже не в какую-то абстрактную хуйню а транспилируется в вызовы api реакта
                        Ответить
                        • >Разумеется, имеет

                          Нет, не имеет. Тебе нужно устанавливать валидаторы которые ты ставишь с бабелем или еще какой-то парашей. Точно так же ты можешь в бабель поставить валидаторы html
                          Ответить
                          • >Разумеется, пассивное

                            Ты забыл уточнить что менять модель можно не как угодно а исключительно с помощю API реакта потому что вью должен попросить реакт зашедулить апдейт самого себя
                            Ответить
                            • Именно потому вью и пассивное. Нельзя взять и поменять собстенный вид не трогая модель (вероятно можно, но это будет грязный хак)

                              Есть стейт системы, который не зависит от view. И есть view, которое его отражает.
                              Любые изменения во вью должны вноситься через стейт.
                              Ответить
                              • Стейт системы в реакте зависит от вью потому что его апдейты и отрисовки напрямую зависят от жизненного цикла компонента

                                Ты не можешь поменять вью не трогая модель но ты очень просто можешь поменять модель и оставить вью неактуальным
                                Ответить
                                • >Стейт системы в реакте зависит от вью
                                  В программировании под термином "зависимость" обычно подразумевают наличие знания или ссылки на что либо.

                                  "A зависит B" значит у A есть знание о B или ссылка на B.

                                  У стейта нету никакого знания о вью, но разумеется его рисуют в рамках жизненного цикла.

                                  Точно так же как HTML страница не имеет зависимости на мою ОС (в ней нет кода, специфичного для моей ОС) но страница сущестует только потому, что ОС ее рисует (по требованию браузера).

                                  Жизненный цикл страницы (обновления её итд) так же зависят от ОС, а еще от моей клавиатуры.

                                  >Ты не можешь поменять вью не трогая модель

                                  Я могу выкинуть view, и написать другой view для той же самой модели.

                                  Если же ты имеешь ввиду, что вся работа с вью идет через модель -- то да, это так. Именно потому вью и пассивен, хотя в данном случае у нас во вью инкорпорирован контроллер, что несколько смешивает понятия (в совсем классическом пассивном вью контроллер должен быть отдельно)

                                  Однако я не могу по онклику на кнопку поменять напрямую другую кнопку. Я должен сообщить об этом модели, а дальше система отрендерит мои изменения этой самой модели

                                  Это, в целом, неплохой паттерн, позволяющий не писать говно типа "при нажатии на кнопку A задизейблить кнопку X"
                                  Ответить
                                  • Я имею в виду что вся работа с моделью и вью идёт через реакт

                                    Это неочевидно на простых примерах но при достаточно сложной логики и вью и модель(если это именно модель UI) становятся обязаны знать о жизненном цикле реакта
                                    Ответить
                                    • + никто не делает ховер эффекты на реакте, все делают это на css а это уже нарушение твоей концепции вью

                                      Аналогично все делают бизнес-логику на чем угодно кроме реакта, но вся ui логика делается в реакте. И любая библиотека реализующая модель имеет адаптер к реакту
                                      Ответить
                                      • ховер не является частью модели данных. В модели обычно нет понятия "кнопка покрыта мышью"

                                        Если бы такое понятие было, то разуеется лучше было бы испольщовать модель.

                                        > бизнес-логику
                                        Бизнес логику лучше отделять от UI фреймворков, это правда.

                                        Когда мы говорим "модель", мы на самом деле имеем ввиду "модель представления". В крупных проектах она может отличаться от настоящих бизнес моделей (см MVVM)
                                        Ответить
                                        • В этом и суть что можно было бы это добавить в модель, но никто так не делает

                                          Внешне реакт действительно похож на тонкий слой вью максимально приближенный к вёрстке, но в действительности это ожиревшая хуйня в которой jsx - не html, обработчики событий элемента не привязаны к этому элементу, фаза рендера не отдает html и в случае порталов иерархия реактовых компонентов сильно отличается от иерархии DOM компонентов
                                          Ответить
                                    • Работа любого фреймворка построена так, что его классы должны о нем знать чаще всего, увы.
                                      Ответить
                          • > Тебе нужно устанавливать валидаторы которые ты ставишь с бабелем или еще какой-то парашей.

                            Любой компилятор JSX отловит ошибку с незакрытым тегом.

                            Формально говоря ты прав: например ни джава, ни jsx не имеют средств для статической валидации кода. Такие средства имеют их компиляторы.
                            Однако же мы говорим "в джаве код компилируется, и это дает некоторую проверку по сравнению с бат файлом, где об ошибке можно узнать только в рантайме"
                            О JSX можно так сказать
                            Ответить
                        • >JSX не шаблонизатор потому что результатом его развертывания не является верстка.

                          Результатом его работы является JS код, который после всего этого и строит DOM страницы. Это -- деталь реализации.

                          Шаблонизаторы позволяют писать HTML код встраивая в него какие-то переменные, и получать в итоге HTML страницу.

                          Некоторые шаблонизаторы генерируют поток байт, который затем превращется в символы HTML.

                          Шаблнизатор JSP (в джаве) генерирует Java код.
                          В ASP.NET код получается на .NET.

                          Тем не менее, всё это шаблонизаторы.
                          Ответить
                          • результатом работы реакта не является html код и не js код а абстрактное дерево поэтому все что ты пишешь дальше идет мимо
                            Ответить
                            • результатом работы любого кода является изменение напряжения на ножках процессора, а никак не html, потому шаблонизаторов не существует
                              Ответить
                              • Для меня определяющим в шаблонизаторе является то что он браузеру отдает html

                                Если он как реакт отдает скрипты то это уже какой-то рантайм
                                Ответить
                                • приведи пожалуйста пример JS шаблонизатора
                                  Ответить
                                  • Pug
                                    Ответить
                                    • Но ведь он тоже сначала создает JS код, который затем выдает тебе HTML, нет?
                                      Ответить
                                      • Давай я тогда обозначу что я не рассматриваю jsx в отрыве от реакта

                                        Можно написать шаблонизатор который будет выдавать вёрстку из jsx

                                        Но в случае с реактом эта верстка сама по себе не имеет ценности, имеют ценности скрипты которые будут делать новую верстку и контролировать жизненный цикл
                                        Ответить
      • разметку вместе с кодом, угу
        Ответить
        • разметка кода
          Ответить
          • Твой любовник потёр мои комментарии. тебе есть, чем оправдать это злое деяние?
            Ответить

    Добавить комментарий