我們在寫vue組件的時候,如果在一個組件裏引入多個組件,一般的寫法是這樣的
完全沒毛病,但是這樣的寫法就有點累贅,每次新增一個組件又要添加多處,原來現在已經有更方便的寫法了,實踐了一下,非常nice
const routes = {};
const contexts = require.context('../SubComponets', false, /\.vue$/);
contexts.keys().forEach(key => {
let name = key.slice(2, -4);
console.log(name);
routes[name] = contexts(key).default || contexts(key);
})
components: {
...routes
},
代碼解析:根據自己要引入的組件寫require.context()的參數,第一個爲路徑;第二個爲是否查找子文件夾;第三個爲組件名字正則表達式匹配
然後可以遍歷組件的名稱,掛載到組件上。也可以通過過濾name的方法,掛載需要的組件,非常實用~