Задать вопрос
  • Как полностью анонимизировать операционную систему?

    Aetae
    @Aetae
    Тлен
    Поставить в виртуалке, запускать по мере надобности, выключать без сохранения состояния.
    Ответ написан
    Комментировать
  • Как строго валидировать параметры во vue роутинге?

    Aetae
    @Aetae Куратор тега Vue.js
    Тлен
    Во-первых: вообще непонятно как по вашему должна выглядеть "строгая" валидация. Крашить приложение?
    Во-вторых: эта валидация в компоненте, а не в роутинге.
    В-третьих: любой входной параметр маршрута - по определению строка, т.к. является частью строки - url.

    В итоге: props в свойствах маршрута может быть функцией. В эту функцию вы можете добавить как свой валидатор, так и приведение типов.
    Ответ написан
    Комментировать
  • Как сделать отдельный js файл на томже уровне что и dist?

    Aetae
    @Aetae Куратор тега Vue.js
    Тлен
    Если юзается vue-cli - то в проекте есть папочка public, кладите туда.
    Если чистый webpack - то нужен copy webpack plugin.
    Ответ написан
    Комментировать
  • Можно ли внутри шаблона увеличить переменную в data?

    Aetae
    @Aetae Куратор тега Vue.js
    Тлен
    Технически можно, практически - нельзя. Она будет обновляться каждую перерисовку, и в vue вы перерисовку не контролируете, vue сам перерисовывает когда считает нужным. Можно предположить сколько и когда перерисовок будет, т.к. vue не рисует лишнего, но никаких гарантий.
    Ну и в целом шаблон - он для отображения, любые изменения внутри оного - надругательство над самой идеей.
    Ответ написан
    Комментировать
  • Как реализовать спряжения при помощи VueI18n?

    Aetae
    @Aetae Куратор тега Vue.js
    Тлен
    Ответ написан
    Комментировать
  • Как отсортировать по порядку в .xlsx в файле используя 2D массив?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    arr.sort(function(a, b) {
      return b[1] - a[1];
    })

    Вообще это можно и в экселе делать.(хз правда как:)).

    Доп инфа, если делаете для себя: эксель можно через ActiveX подключить в виндовый hta\jscript и проводить операции прям над xlsx файлом.
    Ответ написан
    2 комментария
  • Как правильно выполнить типизацию функции трансформации данных?

    Aetae
    @Aetae Куратор тега TypeScript
    Тлен
    interface IOrder {
        date: string,
        docTypesName: string,
        docId: number,
        image: string,
        name: string,
        price: number,
        quantity: number,
        removed: number,
    }
    
    interface  IProduct {
        image: string,
        name: string,
        price: number,
        quantity: number,
    }
    
    interface IDocument {
        date: string,
        docId: number,
        docTypesName: string,
        products: IProduct[],
    }
    
    interface IElement {
        date: string,
        documents: IDocument[]
    }
    
    interface IElementMap {
        date: string,
        documents: Record<string, IDocument>
    }
    
    type IResultMap = Record<string, IElementMap>;
    
    function f(orders: IOrder[]): IElement[] {
        const result = orders.reduce((accumulator, currentValue) => {
            const date = currentValue.date.split(' ')[0];
    
            if (!accumulator[date]) {
                accumulator[date] = {
                    date,
                    documents: {},
                }
            }
    
            if (!accumulator[date].documents[currentValue.docTypesName]) {
                accumulator[date].documents[currentValue.docTypesName] = {
                    date: currentValue.date,
                    docId: currentValue.docId,
                    docTypesName: currentValue.docTypesName,
                    products: [],
                }
            }
    
            accumulator[date].documents[currentValue.docTypesName].products.push({
                name: currentValue.name,
                price: currentValue.price,
                image: currentValue.image,
                quantity: currentValue.quantity,
            })
    
            return accumulator;
        }, {} as IResultMap)
    
        console.log('result', result);
    
        return Object.values(result).map(currentValue => {
            console.log('currentValue', currentValue);
    
            return {
                ...currentValue,
                documents: Object.values(currentValue.documents)
            }
        });
    }
    
    console.log(f(orders));
    Ответ написан
    Комментировать
  • Как использовать снипетты в vue.js?

    Aetae
    @Aetae Куратор тега Vue.js
    Тлен
    Чувак, это называется циклы.
    Ответ написан
    Комментировать
  • Как получить корректный результат при рендеринге компонента?

    Aetae
    @Aetae Куратор тега Vue.js
    Тлен
    Ну, всё нормально, компонент никого не ждёт и монтируется себе синхронно. Когда запрос отработает тогда значение и будет. Поскольку это геттер - то vue всё обновит когда надо. Просто показывайте какой-нить спиннер пока currentTourGetter пуст.
    Ответ написан
    Комментировать
  • Как получить елемент внутри v-bind?

    Aetae
    @Aetae Куратор тега Vue.js
    Тлен
    Начнём с того, что вы не должны лезть внутрь компонента-ребёнка из компонента-родителя. Никогда. Компонент-ребёнок - это чёрный ящик. Вы не знаете есть ли в нём вообще firstChild и что там у него со scrollHeight. Не знаете, говорю, даже если сами тот компонент написали. Это основа компонентного подхода: содержимое любого компонента может быть полностью переписано без влияния на зависимые от него родительские компоненты. Любое управление осуществляется через props, события (и, в особых случаях, докуметированные публичные методы и свойства, получаемые через ref).

    В данном случае вам нужно для ребёнка сделать компонент-обёртку(или поправить его самого), либо добавив свойство вроде set-height-by-child, которое и будет управлять данным поведением, либо, если нужна работа с этой высотой снаружи, посылать из него событие вроде @emit('scroll-height-changed', scrollHeight) при mounted, при изменении размера экрана и прочих возможных случаях.
    Ответ написан
    Комментировать
  • Как получить список процессов windows используя node.js?

    Aetae
    @Aetae
    Тлен
    Из консольки.)
    const { exec } = require('child_process')
    
    exec(`tasklist /FO CSV`, (err, stdout, stderr) => {
      if (err || stderr)
        return console.error(err || stderr);
    
      return console.log(stdout); // csv-parser...
    })
    Ответ написан
    Комментировать
  • Как сделать блоки с автоподбором ширены с css flex без js?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    1. Использовать grid.
    2. Досыпать в конец блоков с нулевой height сколько надо на заполнение сточки.
    Ответ написан
  • Как вставить в DOM динамический компонент Vue, находящийся в полученном по xhr html?

    Aetae
    @Aetae Куратор тега Vue.js
    Тлен
    Правильный ответ: не грузить html с сервера. Серьёзно, это противоречит самой идее SPA. С сервера должны пилетать данные, хотя-бы как-то так:
    { 
      infoBlock: [{
        type: 'text',
        value: '...'
      },{
        type: 'component',
        value: 'review'
      },{
        type: 'text',
        value: '...'
      }]
    }
    а уже SPA разложит это всё на готовую разметку.

    Вредный ответ: Vue.compile().
    Ответ написан
    Комментировать
  • Как создать v-on: события?

    Aetae
    @Aetae Куратор тега Vue.js
    Тлен
    Что вы пристали к этим директивам. Директивы - нишевая фича, нужная в специфических общих случаях. Если вы пишите директиву для одного компонента - вы делаете что-то не так(99%).

    Так вот @transitionend="mymethod" должно работать само по себе, без лишних телодвижений. В крайнем случае @transitionend.native="mymethod" если цель - другой компонент.
    Ответ написан
    2 комментария
  • Нужно ли знать синтаксис webpack фронту?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    Достаточно представлять себе принципы и возможности, углубляться стоит по мере необходимости, как и со всем остальным. В мире слишком много всего, досконально всё это знать невозможно(если вы не супермен).
    По вебпаку у меня несколько написанных плагинов, пара лоадеров, хитро-закрученные конфиги entry-point'ов с шарингом chunk'ов и множество использованных малоизвестных фич за плечам. Знаю ли я webpack? Нет, я не знаю webpack, в нём ещё тонна чего я не каслся. Но документация вот она, сорцы вон они, надо будет - разберусь.
    Ответ написан
    Комментировать
  • Как полностью избавиться от отступов, который выставляет браузер?

    Aetae
    @Aetae
    Тлен
    line-height?
    Ответ написан
    Комментировать
  • Почему slideUp() и slideDown() срабатывают несколько ршз?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    Потому что при каждом resize, если $(window).width() <= 768 ты добавляешь новый обработчк клика, не удаляя старый. Подёргай окно сто раз - будет сто раз срабатывать при клике.
    Ответ написан
  • Как взять данные из JSON?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    Тебе английским языком по красному написано: "blocked by CORS". Осталось погуглить эту аббревиатуру.
    Ответ написан
    2 комментария
  • Дата выводиться на ios NaN, а на остальных девайсах корректно. Почему и как справить?

    Aetae
    @Aetae Куратор тега Vue.js
    Тлен
    В this.getCurrentDateRange.start лежит дата в формате непонятном IOS. Задавате конкретный формат явно:
    currentDate() {
      return moment(this.getCurrentDateRange.start, "YYYYMMDD(или какой там формат)").format('YYYY-MM-DD')
    },


    P.S. Да, даты на разных платформах И в разных браузерах работают по разному. Работать с ними надо исключительно явно, никогда не полагаясь на автоматическую угадайку. Даже если сейчас вдруг работает везде, не факт что внезапно не сломают.
    Ответ написан
    5 комментариев
  • Vue.js как работать с изображениями в assets?

    Aetae
    @Aetae Куратор тега Vue.js
    Тлен
    Предполагается что html особо не динамичен. По сути вся фишка в обаботки динамических импортов файлов зависит от соответствующих webpack loader'ов. SCSS loader для каждого url вида ~@path вызывает(условно) require(path) и делает соответствующую магию(обычно это для мелких файлов: url-loader, который инлайнит файл как data: URI, для крупных: file-loader, который копирует файлы в соответствующую расширению папочку и добавляет к имени хэш). HTMLWebpackLoader не трогает подключаемые ресурсы, в т.ч. картинки. Просто юзайте картинки в том же scss, а внутри html назначайте соответствующее классы. Или кладите нужны для html картинки сразу в public, да.
    Ответ написан
    Комментировать