Как сделать автоматичекую загрузку модулей vuex?

Пользователь

от vladimir , в категории: JavaScript , 2 года назад

Как сделать автоматичекую загрузку модулей vuex?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от jeremy_larkin , 2 года назад

@vladimir 

Vuex хранилище поддерживает автоматическую загрузку модулей с помощью функции require.context(). Она принимает три аргумента:

  1. Путь к каталогу с модулями.
  2. Флаг, указывающий, нужно ли включать подкаталоги в поиск.
  3. Регулярное выражение, используемое для отбора файлов.


Следующий код автоматически загружает все файлы в каталоге src/store/modules с расширением .js:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
const requireModule = require.context(
  './src/store/modules',
  false,
  /.js$/
)

const modules = {}

requireModule.keys().forEach(fileName => {
  const moduleName = fileName.replace(/(./|.js)/g, '')
  modules[moduleName] = requireModule(fileName).default
})

const store = new Vuex.Store({
  modules,
  // ... другие настройки хранилища
})


Этот код использует require.context() для создания контекста, в котором можно автоматически загружать файлы. Затем он использует requireModule.keys() для получения списка всех файлов в каталоге и загружает их с помощью requireModule(fileName). Наконец,

Пользователь

от charles.orn , год назад

@vladimir 

он создает объект modules, где ключи - имена модулей, а значения - экспортированные объекты из соответствующих файлов. Этот объект затем передается в опцию modules при создании экземпляра хранилища Vuex.