строить статический массив объектов во время сборки, а не во время выполнения?
Я хочу избежать попытки управлять несколькими статическими массивами в моем коде 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/
Другие инструменты сборки также могут запускать сценарии на этапе сборки.