component:(resolve) => require是什么意思?

routes: [

{
  // 进行路由配置,规定'/'引入到home组件
  path: '/',
  component: resolve => require(['../pages/home.vue'], resolve),
  meta: {
    title: 'home'
  }
}]
在配置路由的时候,看网上很多代码里component都是这种写法,请问resolve => require是什么意思?为什么这里的component要这么写,不直接写引用名呢?
阅读 20k
4 个回答

这是异步加载组件,当你访问 / ,才会加载 home.vue。
不过这种写法已经过时了,推荐使用 import('../home.vue')

这样写是为了 异步组件

resolve 就是 promiseresolve 回调,组件加载成功后调用

因为 webpack 支持多种模块规范语法 所以有很多方式的异步加载:

AMD 异步

require(['./a', './b'], function(a, b){
    console.log(a, b)
});

commonjs 异步

require.ensure([], function(require){
    var a = require('./a');
    console.log(a)
});

ES 异步

import('./a').then(a => {
    console.log(a)
})

改成了绝对路径

路由懒加载的一种写法
也可以写成如下,参考文档

{
  path: '/',
  component: () => import('../pages/home.vue'),
  meta: {
    title: 'home'
  }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题