Задать вопрос
  • Почему не работает removeEventListener в React?

    Итак, как раз для прокрутки addEventListener и removeEventListener использовать в реакте вполне легально.
    Более того, вы вполне обошли использование рефов используя window, тут все хорошо.
    Но вот на следующих граблях - жизненном цикле вы таки споткнулись.
    Где гарантия, что компонент не перерендерился и функция disableOnwheel осталось той же что и была ?
    Нужно
    1) Вынести disableOnwheel за пределы компонентов, там нет ничего что зависело бы от наличия React
    2) Внимательно прочесть про клинап https://reactjs.org/docs/hooks-effect.html
    Ответ написан
    1 комментарий
  • Как убрать эту линию в phpStorm и вообще зачем она нужна?

    @VolgaVolga
    Не сметь убирать!
    Это ограничение в 120 символов в строке.
    Если за нее выходите - лучше пересмотреть форматирование кода.
    Ответ написан
    2 комментария
  • Как реализовать вещь, которая изображена на скриншоте?

    mizutsune
    @mizutsune
    I will live forever in the flame of your eyes.
    Данный элемент обычно называется Overlay. Его предназначение заключается не только в том чтобы затемнить область вокруг модального окна или off-canvas меню для наилучшей фокусировки на элементе, но ещё и для того чтобы при клике на данный элемент можно было закрыть окно/меню.

    Однако если закрытие по клику не нужно, разумеется можно сделать и тенью и псевдоэлементами как вам подсказали в комментариях.

    Или если всё же нужно закрытие по клику, тогда вариантов несколько.

    Первый вариант:

    Оборачиваете off-canvas меню в обертку для которой устанавливаете полупрозрачный темный фон. При открытии меню, делаете обертку и меню видимыми.

    Второй вариант:

    Создаёте отдельный элемент для оверлея, задав нужный полупрозрачный темный фон. При открытии меню, делаете оверлей и меню видимыми.

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

    Вот как пример библиотека onoffcanvas.
    Ответ написан
    Комментировать
  • Какая архитектура приложения лучше?

    kawabanga
    @kawabanga
    А вы их не видите сами?
    Самое очевидное отличие -
    У вас либо фронт отдельно либо совместно.
    Если сам сайт уже давно написан и используется, а React нужен на пару кастомных страничек, то лучше его и подключать так.
    Если вы пишите фронт с нуля, и он будет на 100% на реакте - разделяйте.
    Если вы пишите фронт с нуля и планируется приложение - разделяйте.

    Способы запуска - это вообще не про лучше или хуже. Работайте исходя из возможностей и требований.
    Ответ написан
    Комментировать
  • Как редактировать билд?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Для начала следует правильно организовать работу с кодом и его хранение: сегодня для этого git является стандартом. Github, bitbacket, gitlab. Далее, настраивается процесс деплоя приложения на сервер. Например, в репозитории настраивется вебхук, действие или еще что, в зависимости от выбранного сервиса хранения и отслеживания кода, на событие/таг "релиз". Или специальное приложение на вашем сервере по кнопке в веб интерфейсе скачивает выбранную ветку/релиз/таг на сервер, производит сборку приложения, установку библиотек и т.п., затем перезапускает ваше приложение, если необходимо. Все. Далее разработчик ведет разработку на своей машине и отправляет изменения в репозиторий. А потом достаточно нажать кнопку "релиз" и приложение автоматически будет размещено и перезапущено на сервере.
    Ответ написан
    2 комментария
  • Как разбить текст на теги?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    можно создать временный элемент <template>, вставить в него этот HTML,
    и забрать из него DocumentFragment

    Фрагмент — это примерно как DOM-документ, его можно рекурсивно обойти через свойство children

    Например, в строке содержится такой HTML:
    <div>
      <p>Text</p>
      <ul>
        <li>Apple</li>
        <li>Banana</li>
      </ul>
    </div>
    И примерно такой код:
    const tmpl = document.createElement('template');
    tmpl.innerHTML = msg; // строка с HTML
    const df = tmpl.content; // DocumentFragment
    
    df.children // массив из одного элемента: наружний div
    df.children[0].children // массив с двумя эл.: параграфом и списком
    df.children[0].children[1].children[1].textContent // "Banana"
    Ответ написан
    2 комментария
  • Ограничить работу в Windows 10 одним приложением?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Именно для хрома
    https://dandelion-burdock.com/articles/chrome-kios...

    для любого приложения ищите windows 10 kiosk mode
    https://www.google.com/search?q=windows+10+kiosk+m...
    Ответ написан
    Комментировать
  • Как практиковаться в программировании?

    CityCat4
    @CityCat4
    Дома с переломом ноги
    Обычно с помощью рук и головы :) В полном соответстии с принципом антиэнтропийности - циклический процесс, в котором при каждом следующем заходе все больше порядка и меньше хаоса :)
    Ответ написан
    Комментировать
  • Как практиковаться в программировании?

    AgentSmith
    @AgentSmith
    Это мой правильный ответ на твой вопрос
    Просто берёшь и пишешь.
    Это для таких как ты манифест:
    https://macode.ru/
    Ответ написан
    Комментировать
  • Как практиковаться в программировании?

    DevMan
    @DevMan
    да берешь и делаешь.
    походу разгребаешь возникшие проблемы/вопросы.

    волшебных кнопки/рецептов не существует.
    Ответ написан
    Комментировать
  • Как практиковаться в программировании?

    Adamos
    @Adamos
    от выбора библиотек

    Да, это сложно.
    Надо, во-первых, понять, что тебе вообще надо.
    Потом поискать, как это вообще решается. Сейчас, когда есть гугль и форумы, этот этап стал значительно легче.
    И вот когда перед тобой распахнется все богатство выбора решений и возможностей - не искать самое оптимальное и правильное, а взять первое попавшееся, описание которого тебе в общем понятно. И по этому понятному руководству нарукоблудить кучу говнокода, добиваясь единственной цели - чтобы оно заработало.
    После того, как полученный продукт все-таки запустится и будет удален, кругозор немного изменится, и дальше пойдет легче...
    Ответ написан
    Комментировать
  • Некоторый вопрос о миграциях c enum Laravel. Что там не так?

    iMedved2009
    @iMedved2009
    Не люблю людей
    Правильно сказал. Через полгода у вас эту модель удалят. Или изменят. Придёт новый человек и попробует у себя развернуть проект и накатить миграции - получит ошибку. Как ее побороть? Искать в миллионе коммитов как эта модель выглядела?

    Правило общее для всех языков и фреймворков. В Гугл вбейте don’t use models in migrations получите ответ.
    Ответ написан
    Комментировать
  • Как тестировать миддлвары в которых используется конфиг?

    iMedved2009
    @iMedved2009
    Не люблю людей
    class TestSome{
        protected function setUp (): void
        {
            parent::setUp();
            Config::set("come_config.value", "blablabla");
        }
    }
    Ответ написан
    Комментировать
  • Как работает это замыкание?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Потому что на самом деле ваш код для движка JS выглядит примерно так:
    let name = 'Bob';
    
    function fn() {
        // Перезаписывается не "глобальная" переменная, а "локальная", содержащая функцию
        var name = function () {};
        name = 'Bill';
        return;
    }
    
    fn();
    
    console.log(name);


    Если же функцию действительно вернуть, то всё начинает работать:
    let name = 'Bob';
    
    function fn() {
        name = 'Bill';
        return function name () {};
    }
    
    console.log(fn());
    
    console.log(name);

    Но зачем тут вообще именовать эту функцию?
    Ответ написан
    Комментировать
  • Что такое «.js@crc=6»?

    SagePtr
    @SagePtr
    Еда - это святое
    Скорее всего, изначально URL файла выглядел наподобие https://домен/папка/файл.js?crc=6, где ?crc=6 использовалось для обозначения версии этого файла на случай, если в кэше браузера могла находиться какая-либо из предыдущих его редакций, предположительно их было пять (при каждом изменении файла - в URL также менялся этот номер, чтобы браузер считал файл другим и не брал из кэша старый). Но потом этот файл был сохранён на диск на стороне клиента, а в файловой системе вопросительный знак недопустим, потому этот символ был заменён на символ @. Так и получилось такое странное расширение файла. Почем именно crc - скорее всего, просто неудачно выбранное название параметра, который в принципе может называться как угодно или вообще не иметь названия, лишь бы символы после ? различались от версии к версии, если выбран именно такой способ обхода кэша.
    Ответ написан
    2 комментария
  • Как составить запрос MySQL?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    просто дописать джойны всех трёх таблиц
    Ответ написан
    8 комментариев
  • Как приветси GET-ответ в удобочитаемый вид?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Это называется не "GET ответ", а JSON
    Ответ написан
    Комментировать
  • Не работает свойство background-image в CSS. В чём проблема?

    Ankhena
    @Ankhena Куратор тега CSS
    Нежно люблю верстку
    UPD. Проблема исчезает, когда убираю в "container" свойство position: absolute;


    Абсолют выводит элемент из потока. Родительский элемент и соседи перестают о нем знать.

    Поскольку других детей нет, header имеет нулевую высоту -> вы не видите фона.

    Может в таком случае нужно правильно разбить разметку в самом HTML?

    Может быть.
    Но чтобы сказать точно, нужно видеть макет (и возможно ТЗ)

    p.s.
    Интересно, что вы хотели сказать этим кодом
    font-family: 'Playfair Display', serif;
    font-family: 'Montserrat', sans-serif;
    Ответ написан
    3 комментария