require.context中開啟按需加載

最近了解到require.context自動化引入,使用過程中發現了其有兩懶加載參數,lazy與lazy-once,看了看文檔的資料,感覺有點云里霧里,不是很明白兩者間的區別,打算自己嘗試一下lazy

const modules = [];
const files = require.context("../views", true, /\.vue$/,'lazy');
files.keys().forEach((item) => {
  const name = item.split("/")[1];
  modules.push({
    path: `/${name}`,
    name,
    component: files(item).default,
  })
});
console.log(modules)

Vue.use(VueRouter)

const routes = [
  {path:'/',redirect: '/home',},
  ...modules
]

路由組件如上寫,沒有問題
但在公共的一個大組件中引入很多小組件使用這種方式的話,不能加‘lazy’

 const modules = {};
  const files = require.context("../control", true, /\.vue$/);
  files.keys().forEach((item) => {
    const name = item.split("/")[1];
    modules[`her-${name}`] = files(item).default;
  });
 
//加上“lazy”返回的是一個Promise對象了,
  const modules = {};
  const files = require.context("../control", true, /\.vue$/,'lazy');
  files.keys().forEach(async(item) => {
    let com = await files(item)
    console.log(item,com,com.default)
    const name = item.split("/")[1];
    modules[`her-${name}`] = com.default;
  });

此時頁面會報錯,無奈了,不知道什么原因

? 最佳回答:
 const modules = {};
  const files = require.context("../control", true, /\.vue$/,'lazy');
  files.keys().forEach((item) => {
    const name = item.split("/")[1];
   modules[`her-${name}`] = ()=>files(item) //直接提供一個返回 Promise 的函數 
  });

require.context中開啟按需加載,首先攜帶'lazy',
提供一個返回 Promise 的函數,
最后在vue注冊組件時,直接提供引用地址 components:modules

主站蜘蛛池模板: 一区二区三区四区视频在线| 日本一区二区在线不卡| 精品一区狼人国产在线| 日韩精品福利视频一区二区三区| 无码人妻一区二区三区免费视频| 亚洲av无码一区二区三区人妖 | 亚洲AV日韩AV天堂一区二区三区| 在线不卡一区二区三区日韩| 2022年亚洲午夜一区二区福利| 成人一区二区免费视频| 精品一区二区三区四区电影| 国产成人精品一区二三区在线观看| 麻豆果冻传媒2021精品传媒一区下载| 国产主播一区二区| 国产成人AV一区二区三区无码 | 中文人妻无码一区二区三区| 一区二区在线免费视频| 国产伦精品一区二区三区免费下载 | 视频一区二区三区免费观看| 日本v片免费一区二区三区 | 亚洲日韩AV一区二区三区四区 | 亚洲一区二区三区国产精品| 亚洲国产激情一区二区三区| 国产一区二区三区在线电影| 免费一区二区无码视频在线播放 | 久久精品国产亚洲一区二区三区 | 午夜DV内射一区二区| 国产综合无码一区二区辣椒| 国产无线乱码一区二三区| 国产一区二区三区久久精品| 无码人妻精品一区二区三区66| 无码人妻精品一区二区在线视频 | 无码人妻精品一区二区三区9厂| 久久人妻无码一区二区 | 亚洲一区二区三区四区在线观看| 无码一区二区三区| 亚洲AV一区二区三区四区| 日韩美女视频一区| 国产亚洲欧洲Aⅴ综合一区| 一区二区三区亚洲| 精品国产高清自在线一区二区三区 |