• Где лучше хранить токен для запроса на сторонний ресурс?

    @lilkan
    Начинающий разработчик
    99% токенов хранятся в localstorage
    в них не должно содержаться никаких логинов/паролей/уязвимой инфы, вся безопасность должна крутиться на бэке
    обычно это пара authToken/refreshToken, если нужно еще хардверно привязать то лучше системные куки + фингерпринт какой нибудь

    простой ответ - localstorage
    для остального надо подробный кейс
    Ответ написан
    Комментировать
  • Как обработать поведение кнопки в V-for?

    @lilkan
    Начинающий разработчик
    Выдели ту часть таблицы по которой кликаешь и которую скрываешь в отдельный компонент, и там обрабатывай клики, иначе придется городить кучу уникальных полей чтобы скрывать именно их.
    Ответ написан
    Комментировать
  • Почему transitionend ломается если быстро нажимать на кнопку?

    @lilkan
    Начинающий разработчик
    https://codesandbox.io/s/determined-banach-qoktdi?...

    вкратце, нужно было поиграться с focus/active в css, полностью без js, и использовать animations
    тут могут возникнуть проблемы c ie11
    Ответ написан
    Комментировать
  • Что делать если не подключается node.js?

    @lilkan
    Начинающий разработчик
    Обнови xcode и command line tools и поставь ноду снова, лучше через какой нибудь nvm чтобы в path не заплутать
    Ответ написан
    Комментировать
  • Где я ошибся в цикле do..while?

    @lilkan
    Начинающий разработчик
    В рядовом случае функция еще называется while(true), что говорит о том что она будет исполнятся пока условие истинно. В вашем случае dadYearsOld / sonYearsOld == 2 выкидывает false сразу же, и цикл прекращается.

    вот решение
    function twiceAsOld(dadYearsOld, sonYearsOld) {
      let i = 0 
      do{
        dadYearsOld++
        sonYearsOld++
        i++
      }while(dadYearsOld / sonYearsOld !== 2);
      return i
    }
    console.log(twiceAsOld(36, 7));
    Ответ написан
    Комментировать
  • Как сделать чтобы сохранялся чат после перезагрузки чата?

    @lilkan
    Начинающий разработчик
    1) Если без бд а только Р2Р и чат на двоих, то при onConnect посылать второму пользователю событие getHistory по которому собирать все сообщения и пересылать их первому пользователю через событие setHistory и так восстановить историю. Учти, что у тебя все в dom хранится, и поэтому ты можешь просто взять весь html контент и передать как есть, а на второй стороне просто вставить el.innerHtml.

    2) Хранить все с локал сторедже, но это сугубо в рамках демо и так себе идея.

    3) Подключить какой нибудь firebase и сохранять сообщения туда. Тогда история будет сохранятся сколько угодно долго, чаты можно хранить по guid-ам и т.д. в общем масштабирование)
    Ответ написан
  • Почему не грузят страницы, которые используют vuetify?

    @lilkan
    Начинающий разработчик
    Зашел на страницу со скрина, все работает
    Попробуйте откатить версию и ставьте через npm ci
    Ответ написан
    Комментировать
  • Оцените мою первую верстку?

    @lilkan
    Начинающий разработчик
    Если прям совсем первая то ок.
    1. В хэдере у тебя почему то кусок контента. оставь там нав, а контент вынеси в отдельный section из хэдера.
    2. Если ссылка никуда не ведет, поставь # в href чтобы не было релоуда страницы.
    3. У тебя "Обо мне" и "Как я работаю" стилистически одинаковые, но ты используешь для этого разные классы. Не надо так.
    4. Пользуешься флексами, но позиционируешь элементы с помощью margin. Используй align-items и justify-content
    5. По факту, в 2020 не важно что ты сверстал, важно как. Попробуй препроцессоры, gulp (для начала), из базового еще надо научиться адаптивности.
    6. Попробуй сверстать так, чтобы по кнопке переключалось со светлой темы на темную. (задание со звездочкой)
    Ответ написан
    Комментировать
  • Как разбить многомерный объект?

    @lilkan Автор вопроса
    Начинающий разработчик
    Всем спасибо, решение нашел сам)
    Больше всего походе на решение Александр
    let menu = {}
    
        function getMenu(obj){
            if(obj.children.length > 0){
                menu[obj.url] = obj.children
            }
            obj.children.map(i => getMenu(i))
             return menu;
        }
    Ответ написан
    Комментировать