隐菌子 2022-05-15 15:48 采纳率: 58.3%
浏览 118
已结题

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;
  });

此时页面会报错,无奈了,不知道什么原因

img

  • 写回答

2条回答 默认 最新

  • 你好!机器人 2022-05-15 16:12
    关注

    lazy 延迟加载会分离出单独的 chunk 文件

    lazy-once 延迟加载会分离出单独的 chunk 文件,加载过下次再加载直接读取内存里的代码。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 5月16日
  • 赞助了问题酬金10元 5月15日
  • 赞助了问题酬金10元 5月15日
  • 修改了问题 5月15日
  • 展开全部

悬赏问题

  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站