• Динамический импорт улучшит загрузку VUE сайта или нет?

    Aetae
    @Aetae Куратор тега Vue.js
    Тлен
    Прибьёт. Использовать следует разумно. В основном когда такие компоненты тянут приличные (по размеру относительно бандла) куски кода с собой, а вызываются редко.
    Ответ написан
    Комментировать
  • Как сделать внутреннюю тень поверх дочернего элемента?

    Aetae
    @Aetae
    Тлен
    Никак. Тень - это тень, а дети - поверх родителей.
    Можно сделать полноразмерный псевдоэлемент ::after с тенью и pointer-events: none;.
    Ответ написан
  • Как отсортировать список в js?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    Хз что такое BAS, но вот тебе код на классическом js, который должен работать везде:
    var newArray = [];
    for(var i = 0; i < list.length; i++) { // list - твой список ссылок
      var link = list[i].href; // если в списке уже строки, а не элементы, то убрать .href
      if(link.indexOf('#') === -1) { // если нет # в строке
        newArray.push('определенный текст' + link.slice(5)); // берём определенный текст и добавляем к нему строку начиная с 5 символа
      }
    }
    Ответ написан
  • Как изменить значение в JSON php?

    Aetae
    @Aetae
    Тлен
    json_decode($json, true), изменяем полученный обычный php-массив, json_encode обратно. Какие проблемы?
    Ещё можно по-храдкору str_replace, но лучше не надо.
    Ответ написан
    8 комментариев
  • Как сделать плавный скролл к якорям на чистом js?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    С помощью requestAnimationFrame.
    Например(из фреймворка quasar):
    function getScrollPosition (scrollTarget) {
      if (scrollTarget === window) {
        return window.pageYOffset || window.scrollY || document.body.scrollTop || 0
      }
      return scrollTarget.scrollTop
    }
    
    function setScroll (scrollTarget, offset) {
      if (scrollTarget === window) {
        window.scrollTo(0, offset)
        return
      }
      scrollTarget.scrollTop = offset
    }
    
    function animScrollTo (el, to, duration) {
      const pos = getScrollPosition(el)
    
      if (duration <= 0) {
        if (pos !== to) {
          setScroll(el, to)
        }
        return
      }
    
      requestAnimationFrame(() => {
        const newPos = pos + (to - pos) / Math.max(16, duration) * 16
        setScroll(el, newPos)
        if (newPos !== to) {
          animScrollTo(el, to, duration - 16)
        }
      })
    }

    animScrollTo(<элемент-контейнер>, <позиция>, <время на анимацию>)

    Позицию якоря вычисляйте сами.)

    Ну либо можно поискать готовый пакет в npm, который с гарантией там есть.
    Ответ написан
    Комментировать
  • Как получить локальные картинки за пределами проекта?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    Эти картинки отсутствуют на сервере, потому что никто их туда не кладёт. Сервер(webpack devserver) работает не от локальной папки, а от структурированного как описано в конфиге результата сборки. Сделайте build и посмотрите в папку dist: именно так и выглядит структура файлов на сервере.

    Вы можете положить эту папку с картинками туда использовав copy-webpack-plugin. Если на сервер эта папка будет класться вручную и в прод. dist она вам не нужна - можете подключать этот плагин только для develpment.
    Альтернативно вы можете настроить devserver (используя before/after), чтоб он просто отдавал файлы из этой папки по соответствующему запросу(читая их содержимое вручную средствам node fs).
    Главное не забыть потом положить эту папку на сервер руками.
    Ответ написан
    Комментировать
  • Как остаться на той же странице после авторизации?

    Aetae
    @Aetae
    Тлен
    Должно работать, хз почему не отдупляется.

    Попробуй закостылять задержку:
    вместо window.location.href = '/personal/'; поставь:
    setTimeout(function(){ window.location.reload();}, 1000)
    Если даже секундная задержка ни на что не повлияет, значит по адресу /personal/ лежит какой-то говнокод, влияющий на авторизацию.

    Хотя ещё вариант - какой-то говнокэш. Чтоб проверить это замени: window.location.href = '/personal/'; на: window.location.search = Math.random();
    Ответ написан
    Комментировать
  • Переходник с VGA на DVI + переходник с DVI на HDMI?

    Aetae
    @Aetae
    Тлен
    Не сработает. HDMI - чисто цифровой, VGA - чисто аналоговый, DVI - бывает обоих вариантов сразу или по отдельности. Пассивно же цифру в аналог или обратно не преобразовать.
    Только покупать активный переходник HDMI-VGA, который будет это делать. Но не рекомендую, хрень глючная и, скорее всего, дешевле будет монитор современный купить по-проще.)
    Ответ написан
    Комментировать
  • Как отправить файл на скачивание в браузере?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    Зачем тебе ссылки file:, наркоман? 0_о
    file: это для ссылок на локальные файлы на компе юзера, а не абстрактных "файлов" на сервере.
    Файлы с сервера летят по тому же http:/https:, что и всё остальное.

    При обработке формы ты возвращаешь обычный http-ответ. Вот в этом ответе ставишь заголовок
    Content-Disposition и плюёшь содержимое файла в чистом виде.
    Ответ написан
    Комментировать
  • Как из массива объектов получить массив уникальных ключей?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    let arr = Object.keys(Object.assign({}, ...persons));
    Ответ написан
    Комментировать
  • Как вывести данные из объектов в 3 колонки?

    Aetae
    @Aetae
    Тлен
    Что значит вывести? Так чтоль?
    console.table(items, ['slot' , 'name' , 'displayName'])
    Ответ написан
    6 комментариев
  • Как сделать неудаляемый тег?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    Что-то наговнять можно, вставляя тег сразу после удаления, но если тебе нужен отступ - делай его стилями и не городи огород. Если эти данные потому куда-то отправляются и там нужны обязательно br - добавляй при отправке.
    Ответ написан
    Комментировать
  • Как автоматизированно переименовать папки?

    Aetae
    @Aetae
    Тлен
    Берёте ваш список и преобразуете в вид
    chcp 65001
    ren "старое название" "новое название"
    ren "старое название 2" "новое название 2"
    pause
    сохраняете как .bat и запускаете.
    Ответ написан
    Комментировать
  • Как изменить число внутри строки с сохранением ведущих нулей?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    Вручную:
    s.replace(/\d+$/, str => {
      const num = String(parseInt(str) + 1);
      return '0'.repeat(Math.max(str.length - num.length, 0)) + num;
    });
    Ответ написан
    Комментировать
  • Собрать проект VUE с игнорированием ошибок?

    Aetae
    @Aetae Куратор тега Vue.js
    Тлен
    https://www.npmjs.com/package/eslint-plugin-only-warn
    Без этой хрени с eslint работать невозможно. Какого лешего каждая мелочь в нём идёт по умолчанию как error, а не warning - загадка.

    Другое дело что именно для сборки прода, я как раз этот плагин отключаю. Потому что в прод должен идти чистый код.
    Ответ написан
    Комментировать
  • Как массово скачать файлы с сайта с помощью JS?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    Вот вам говнокод, который я бы не рекомендовал использовать, без крайней необходимости:
    var url = 'https: //site.xyz/dir/dir/.../file{index}.abc';  // {index} - будет заменён на цифру.
    var start = 1; // первый файл
    var end = 4; // последний файл
    var delay = 1; // задержка 1 секунда
    
    function linkClick(url, start, end, delay) {
      if(start > end) return false;
      const a = document.createElement('a');
      a.href = url.replace('{index}', start);
      document.body.appendChild(a);
      a.click();
      setTimeout(() => {
        a.remove();
        linkClick(url, start + 1, end, delay);
      }, delay * 1000);
    }
    
    document.body.addEventListener(
      'click',                              
      () => linkClick(url, start, end, delay),
      {
        once: true
      }
    )

    Настраиваете чтобы браузер для нужного типа файлов начинал скачку ничего не спрашивая.
    Запускаете этот код, после чего кликаете в любом месте(клик нужен чтоб браузер разрешил имитацию клика).
    Он будет каждую секунду создавать новую ссылку и кликать на неё. Если файлы большие, то сервер может послать нахрен если накопится много запросов, тогда перерыв нужно увеличить.
    Ответ написан
    3 комментария
  • Как в js передать русскую строку?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    Если ты видишь undefined - значит ни один if не сработал и, соответственно, desc == undefined.
    Если бы ты видел кракозябры - тогда был бы вопрос в русском тексте и кодировке.
    Ответ написан
    4 комментария
  • Есть ли способ мигрировать с Windows 7 x86 на Windows 10 x64?

    Aetae
    @Aetae
    Тлен
    Не факт что эта "связка софта" будет работать в вин 10 в принципе.
    Можно попробовать всякий мусорный софт, который легко гуглится, типа PCmover.

    Ну и хардкорное решение: сделать виртуалку VMware vCenter Converter и запускать её в VMware Player.)
    Ответ написан
    Комментировать
  • Почему немогу взять данные со своего localhost .?

    Aetae
    @Aetae
    Тлен
    Ответ на вопрос: потому что порты разные. Разные порты - разные сайты.
    Если это вам нужно для разработки, то следует просто проксировать все запросы на бэк будто они локальные(ведь в проде так и будет наверняка).
    Если использовали create react app, то тут написано как это сделать. (просто добавить "proxy": "http://localhost:8000", в package.json)
    Ответ написан
    Комментировать
  • Как найти первый уникальный символ в строке?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    По второму вопросу: убери else в конце, пусть возвращает '' в любом случае, раз не вернуло значение ранее.
    По первому: нормальное "прямое" решение. Для большинства задач достаточное. Мб есть какой-то хитрый алгорим, более оптимальный, но я его не знаю.)
    Ответ написан
    Комментировать