строить статический массив объектов во время сборки, а не во время выполнения?

Я хочу избежать попытки управлять несколькими статическими массивами в моем коде vue. В настоящее время у меня есть длинный json для i18Next, и я использую его для создания необходимых массивов объектов для vue-treeselect во время выполнения .. но я вижу, что он измельчает, и производительность заметно замедляется

Поскольку мне на самом деле не нужно создавать эти массивы во время выполнения, есть ли способ сделать это во время сборки / разработки?

Преобразование json i18next в массив в настоящее время выполняется этим

      export function walk(item) {
    const mainArray = [];
    Object.keys(item).forEach((key) => {
        const objectLiteral = {};
        objectLiteral.id = key;
        objectLiteral.label = 'later - gen key';
        if (typeof item[key] === "object") {
            
            const arrayTemp = [];
            //we need to create an array of objects here and assign them to 'children' in the parent
            Object.keys(item[key]).forEach((key2) => {
                if (key2.slice(-3) === 'gen') {
                    objectLiteral.label = item[key][key2];
                } else { 
                const objectTemp = {};
                objectTemp.id = key2;
                objectTemp.label = item[key][key2];
                arrayTemp.push(objectTemp);
                }
            });
            objectLiteral.children = arrayTemp;
        }
        mainArray.push(objectLiteral)
    });
    return mainArray;
}

Я использую vite как среду разработки / сборки

1 ответ

В зависимости от того, какой инструмент сборки вы используете для проекта, вы всегда можете сгенерировать эти вещи в конвейере сборки сборщика.

В Webpack, например, вы можете просто запустить скрипт и ввести результат в виде переменной, поскольку это всего лишь JavaScript.

https://webpack.js.org/plugins/define-plugin/

Другие инструменты сборки также могут запускать сценарии на этапе сборки.

Другие вопросы по тегам