@vladimir
Vuex хранилище поддерживает автоматическую загрузку модулей с помощью функции require.context()
. Она принимает три аргумента:
Следующий код автоматически загружает все файлы в каталоге 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)
. Наконец,
@vladimir
он создает объект modules, где ключи - имена модулей, а значения - экспортированные объекты из соответствующих файлов. Этот объект затем передается в опцию modules при создании экземпляра хранилища Vuex.