Динамическое создание геттеров Vuex из данных базы данных - PullRequest
0 голосов
/ 24 января 2020

Я пытаюсь динамически создавать геттеры Vuex на основе данных базы данных.

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

Я прочитал о создании модулей и их регистрации, но во всех случаи, которые я видел, они все еще должны быть жестко закодированы. Есть ли способ заставить эту работу работать?

Я также рассматриваю вопрос о том, будет ли лучше хранить получатели и связанные с ними значения состояний в модулях Vuex в виде строки в базе данных, а затем извлекать их и регистрировать их. ,

Какой подход вы бы выбрали?

Заранее спасибо.

Джо

1 Ответ

0 голосов
/ 25 января 2020

Для тех, кто находится в подобной ситуации, я в итоге импортировал пустой модуль vuex и кэшировал его в переменной, назначил новые функции получения и затем зарегистрировал его, подобно этому:

import emptyVuexModule from 'emptyModule'

let cachedModule = emptyVuexModule

cachedModule.getters[getterName] = new Function(['state'], getterContents)

this.$store.registerModule(cachedModule)

I Я не знаю, является ли это лучшим решением, и я знаю, что использование новой функции сопряжено с проблемами безопасности, но работает для моих нужд.

...