Я разрабатываю PWA, основной функцией которого является отображение списка элементов с окном поиска и кнопками сортировки в верхней части каждого столбца. Список никогда не изменяется (нет разделов CRUD), и поле поиска является единственным, которое изменяет свое состояние.
В рассматриваемом JSON в настоящее время содержится более 1300 элементов, каждая запись содержит 26 столбцов. из которых только 4 взяты для списка, который я упомянул выше (остальные столбцы используются в других частях приложения).
В настоящее время я загружаю файл JSON в моем магазине Vuex с чем-то например:
actions: {
async loadData({commit})
{
const json = await import('data_full.json').then(module => module.default)
commit('setData', json)
}
},
mutations: {
setData(state, payload) {
state.jsonData = payload
},
}
, который затем используется в моем приложении. vue:
mounted() {
this.$store.dispatch('loadData')
},
Это прекрасно работает, приложение работает так, как я ожидаю. Однако мне интересно, загружаю ли я файл в нужном месте или исходные данные должны обрабатываться совсем иначе. Файл JSON со временем станет намного больше, и я уже заметил увеличение времени загрузки при первом запуске приложения по мере добавления новых записей.
Я рассмотрел возможность использования IndexedDB, и В настоящее время я тестирую разбиение файла JSON на две части (одна для всего набора элементов, а другая только для 4 полей, необходимых для списка). Моя цель состоит в том, чтобы сократить время «первого рисования», хотя я знаю, что оно ограничено, учитывая размер набора данных, который я использую.
Должен ли я загружать файл JSON в другом месте? Или по-другому загружаться в магазин Vuex?