• Какие эффекты сложнее всего реализовывать во Front-end разработке?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Сложнее всего реализовать эффект хорошего кода и еще пилить код там где сплошная рутина но надо сделать.
    Всякие слайдеры/свистелки/дуделки в целом одинаковы - берешь и делаешь. На любую задачу можно придумать задачу сложнее. То что вы привели сделано на webgl, к веб-разработке имеет отношение постольку поскольку.
    "Тяжело" тоже может быть по разному, для чего-то нужно математику, где-то просто дофига кода написать, где-то перечитать кучу доков, где-то обходить аппаратные ограничения.

    Вас какая "тяжесть" интересует?
    Ответ написан
    3 комментария
  • Может быть такой компонент компонентом высшего порядка в React?

    Robur
    @Robur
    Знаю больше чем это необходимо
    То что у вас называется просто композиция.
    HOC создает новый компонент каждый раз когда вы его используете на основе того компонента который ему передали.

    HOC выглядел бы так:
    const HocA = makeHOC(A)
    const HocB = makeHOC(B)
    
    //... где-то в рендере:
    <HocA />
    
    //где-то еще
    <HocB />


    В чем разница?
    В том что в вашем случае ваш Hoc не зависит от того что ему передали и использует A как свойство.
    Если вы поменяете A на B то Hoc просто получит новые пропсы и сохранит старый стейт. Вы работаете с инстансом Hoc не меняя его класс (тип)

    Когда вы делаете правильный Hoc - то сначала вы создаете два "типа" компонента один для A (HocA) другой для B (HocB)
    потом рендерите уже их как самостоятельные компоненты ничего дополнительно не передавая.
    Ответ написан
    Комментировать
  • Как отказаться от Bower в пользу NPM?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Все что не нужно после публикации пакете ставьте с флагом --dev. (-D для yarn)

    https://docs.npmjs.com/files/package.json#devdepen...

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

    Robur
    @Robur
    Знаю больше чем это необходимо
    Реакт не в курсе что вы там еще в dom добавляете.
    Можете дать всему списку ключ и менять этот ключ чтобы вся нода списка удалилась и создалась заново - тогда и левый элемент пропадает.
    Но вообще лучше ничего в обход реакта не добавлять
    Ответ написан
  • Перспективы веб-разработки?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Перспективы есть.
    Делаете все нормально, продолжайте. До сентября еще все лето - можно очень много всего за это время выучить.
    Ответ написан
    1 комментарий
  • Обратная форма отправляет много сообщений разом при нажатии на кнопку “отправить” как решить проблему?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Ставьте кнопке при клике атрибут disabled. При получении ответа - убирайте.
    Ответ написан
    Комментировать
  • Как сделать редактируемое поле в ant-design?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Тут "специальный input" не нужен - все можно сделать самому без проблем.
    Берете Input , по клику на текст скрываете текст и показываете input, при нажатии enter или esc скрываете input и показываете текст.
    Это при желании можно оформить как компонент - будет вам то что вы хотите.
    Ответ написан
    Комментировать
  • Можно ли в скайпе создать бота который бы писал от имени человека?

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

    Robur
    @Robur
    Знаю больше чем это необходимо
    у вас при отправке вызывается funMZZrU();
    Вы можете переопределить эту функцию - самый простой способ просто скопипастить код из старой функции в новую и добавить туда строчку с нужным действием после того как запрос отработает.
    Ответ написан
    Комментировать
  • Как формировать версию?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Если хочется чтобы версия ставилась автоматически:
    https://github.com/conventional-changelog/standard...

    версионирование по semver, работает на коммит-сообщениях которые должны следовать соглашению
    Ответ написан
    Комментировать
  • Как удалить повторяющиеся товары в корзине, но увеличить их кол-во на React-Redux?

    Robur
    @Robur
    Знаю больше чем это необходимо
    записывайте не просто продукт а продукт + количество

    basket.push({product, count: 1})

    и потом, перед тем как пушить, проверяйте, если там уже такой же продукт, если есть то вместо .push
    пишите увеличивайте count.

    const productInBucket = bucket.find(item => /* проверить что item.product == product так как вам нужно*/)
    if (productInBucket) productInBucket.count++
    else basket.push({product, count: 1})
    Ответ написан
  • Есть ли возможность подставлять произвольные данные в пользовательский js?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Вы перемудриваете. Любой шаблонизатор вам поможет - отнеситесь к этому файлу как к текстовому.
    Сейчас часто используется env-переменные для того чтобы конфигурить JS при сборке
    let allVideo = new window.VPlayer(process.env.SERVER_URL);

    дальше перед сборкой SERVER_URL ставится в нужное значение одним из тонны способов (это реальная переменная окружения) - на выходе вы получаете js-файл с подставленной строкой.
    Это удобно и супер гибко.

    распространенная практика при сборке вебпаком, не знаю умеет ли gulp такое но готов поспорить что да.
    Ответ написан
  • Grapqhl backend и React native app. Стоит-ли объединять?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Нормально вам тимлид говорит, если сделать это грамотно. Single Source Of Truth рулит.

    - разные проекты вполне могут оставаться разными проектами используя один и тот же общий для обоих код. Способов это сделать много. монорепа, модуль, реестр схемы например.
    - у вас уже взаимная зависимость - общий GraphQL API. Вы вряд ли сможете поменять схему в одном проекте и оставить её старой в другом. Возможность хранить схему отдельно и менять независимо - это не гибкость, это прямая дорога к тоннам проблем и куче потерянного времени. Вас не смущает то что каждый раз меняя схему в одном месте надо обязательно сходить и поменять ее в другом чтобы они были всегда синхронизированы, и если вы этого не сделаете/забудете/опечатаетесь/не так скопипастите то что-то где-то обязательно сломается? Именно в этот момент стоило бы почувствовать что-то неладное.
    - если вы не видели чего-то - это не значит что то, чего вы не видели плохо, а то что видели - хорошо.

    В общем, делать стоит - главное делать грамотно. Если вы сейчас весь код в одну кучу свалите то конечно ничего хорошего не выйдет.
    Ответ написан
    Комментировать
  • React + redux какую структуру стейта выбрать для формы и компонента?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Потому и используются везде разные подходы потому что одного "правильного" нет.
    Пишите так как вам больше нравится, и со временем будете в каждом конкретном случае понимать как сделать лучше.

    Можно как у вас, можно положить стейт в компоненте, поменять флаг с true на false не так уж много логики.
    Ответ написан
    Комментировать
  • Graphql мутация?

    Robur
    @Robur
    Знаю больше чем это необходимо
    addNewTemplate({
        variables: {
           id: 12,
           prices: /* данные для PricesInput */
        }
    })


    в чем проблема то у вас? если в том что не можете понять как работать с мутациями - то прочитайте доку, пройдите туториал, в apollo client очень много, хорошо и подробно все описано.
    на первой же странице о том как работать с мутациями - ваш пример:
    https://www.apollographql.com/docs/react/essential...
    Все поймете.
    Ответ написан
    Комментировать
  • Каков путь опытного javascript программиста?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Опытный - понятие крайне растяжимое. Особенно сейчас и особенно в JS.
    Но путь стать опытным (в любом понимании) только один - получать опыт.
    Учеба это хорошо, это подготовка. После учебы идите туда где будете что-то делать и получать опыт делания.
    Ответ написан
    Комментировать
  • Как создать микросервисы на ноде с монолита?

    Robur
    @Robur
    Знаю больше чем это необходимо
    хороший ресурс с кучей текста, примерами и информацией разного уровня сложности: https://microservices.io/
    начините с него
    Ответ написан
    Комментировать
  • Как запретить переходы на предыдущие страницы в React?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Поставьте редирект, который будет проверять, на каком шаге пользователь был в прошлый раз и отправлять его туда.
    Его можно поставить или на каждую страницу или один глобальный который рендерится выше по дереву чем все эти страницы.
    Ответ написан
  • Лучшее решение повесить обработчик на событие?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Кем "не рекомендуется"?
    Чтобы решать проблему нужно убедиться что есть проблема и четко сформулировать ее.
    Если вы решаете проблему что код не подходит под какие-то рекомендации, то это одно, а если вы решаете проблемы с памятью во время выполнения приложения это совсем другое.
    Во втором случае у вас на руках должны быть данные полученные в результате анализа того как ваше приложение работает.
    Подавляющее большинство render функций вызывается на самом деле достаточно редко чтобы это имело значение.
    Ответ написан
    Комментировать