前端 vue -- 批量import引入多個文件


最近寫個項目需要在一個文件中引入多個文件

// 知識點1: 可用於模塊的批量導入,類同於import引入同一文件夾下多個文件。
// require.context(directory, useSubdirectories = false, regExp = /^.//);
// 參數: 1. 讀取文件的路徑 2. 是否遍歷文件的子目錄 3. 匹配文件的正則表達式
// 返回是一個函數,是該文件夾下的匹配文件的執行環境
// 該函數有三個屬性
// 1. resolve {Function} -接受一個參數request,request為test文件夾下面匹配文件的相對路徑,返回這個匹配文件相對於整個工程的相對路徑
// 2. keys {Function} -返回匹配成功模塊的名字組成的數組
const modulesFiles = require.context(’./modules’, true, /.js$/)

// 知識點2:reduce(()=> {total, currentValue, currentIndex, arr}, initValue)
// 參數: 1. 執行每條數據的函數 2. 傳遞給函數的初始值,可選(以前沒發現初始值的妙用-可用於統計個數、去重等)
// 函數的參數
// 1. total 必需。初始值, 或者計算結束后的返回值。如果設置初始值就用初始值,否則就是函數的第一條數據
// 2. currentValue 必需。當前元素

const modules = modulesFiles.keys().reduce((modules, modulePath) => {
// 忽略第1個js
const moduleName = modulePath.replace(/^./(.*).\w+$/, ‘$1’)
// 執行modulesFiles函數,返回一個對象{default: {// 文件內容}, _esModule: true}
const value = modulesFiles(modulePath)
modules[moduleName] = value.default
return modules
}, {})

const store = new Vuex.Store({
modules,
getters
})

export default store


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM