Пользователь пока ничего не рассказал о себе

Наибольший вклад в теги

Все теги (6)

Лучшие ответы пользователя

Все ответы (14)
  • Можно/целесообразно ли делать анимированные переходы в вебе?

    @karambafe
    Классный пример, спасибо, сохранил себе в закладки.

    Тут сильно зависит от технологий, которые применяются в проекте. Если это стандартный серверный рендеринг, то такое сделать не получится. В данном же случае используется изоморфный фреймворк nuxt.js, который при переходам по ссылкам внутри проекта использует клиентский рендеринг, а при "прямой" загрузке страницы - серверный.
    Именно за счет клиентского рендеринга можно хранить глобально определенные данные и делать такие смены интерфейса

    Тут 2 подводных камня:
    1. Красивые анимации - это всегда сложно и долго для тех, кто с ними плотно не работает.
    2. Почти вся информация забирается с сервера, а значит надо при переходе на новые страницы постоянно делать запросы, выполняющиеся определенное время. В этот момент в интерфейсе желательно вставлять какие-то заглушки, которые потом аккуратно будут заменяться на новый контент.
    Ответ написан
  • Nuxt.js Как разделить приложение?

    @karambafe
    Явным образом нельзя, по крайней мере в документации об этом ни слова, да и при создании нового приложения через стартер есть выбор universal (SSR+CSR) или client-side only mode.

    Стандартным решением данного вопроса является разделение на два разных приложения:
    1. Морда (особенного если это простенький лендос) делается на любой технологии (тот же nuxtjs в режиме генерации статики).
    2. Админка делается на любом client-side фреймворке (Vue, React, etc), потому что ей обычно не нужно SEO и нет повышенных требований к скорости загрузки, время tti и тд. "Поселить" ее можно на поддомене.

    Таким образом получится 2 статических приложения, а значит не нужно беспокоиться о node.js :)

    Плюс по опыту работы с nuxt.js могу сказать, что там есть свои особенности с роутером, хранилищем, подключением сторонних библиотек. Плюс своя система модулей - отдельный модуль axios, proxy и тд.
    Еще надо четко понимать, когда идет клиентский, а когда серверный рендеринг.
    В общем на первоначальном этапе время разработки может прилично увеличиться.
    Ответ написан
  • Как можно скрыть ошибку в консоли?

    @karambafe
    401 - нормальный ответ сервера на неправильные данные при авторизации.
    MDN:
    Код ответа на статус ошибки HTTP 401 Unauthorized клиента указывает, что запрос не был применен, поскольку ему не хватает действительных учетных данных для целевого ресурса.


    Скрывать не нужно, так как консоль предназначена для разработчика (не зря в хроме раздел называется Chrome DEV tools), а не для пользователя. По таким ошибкам самому же будет намного проще дебажить.
    Пользователю же важно вывести понятную ошибку в интерфейсе.
    Ответ написан
  • Почему возникает ошибка?

    @karambafe
    А вы уверены, что вот тут стейт корректно обновляется?
    this.setState({
      [e.target.id]: { inputValue: e.target.value },
    });


    Попробуйте использовать prevState и spread для явной перезаписи:
    updateInputValue({ target: { id, value } }) {
      this.setState(prevState => ({ 
         [id]: {
            ...prevState.id,
            inputValue: value,
         },
      }));
    }
    Ответ написан
  • По клику на кнопку получить следующий/предыдущий день?

    @karambafe
    На learn.javascript очень хорошо описана работа с датой и временем в JS:


    Например, нужно увеличить на 2 дня дату «28 февраля 2011». Может быть так, что это будет 2 марта, а может быть и 1 марта, если год високосный. Но нам обо всем этом думать не нужно. Просто прибавляем два дня. Остальное сделает Date:

    var d = new Date(2011, 1, 28);
    d.setDate(d.getDate() + 2);
    
    alert( d ); // 2 марта, 2011



    Ссылка
    Ответ написан