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

routes: [

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

回答:

这是异步加载组件,当你访问 / ,才会加载 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'
  }
}

暂无评论

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注