Vue路由设置

本人最近在学Vue,在网上down了一个demo,其中在路由设置处有如下代码

export default [{
    path: '/',
    component: App,
    children: [{
        path: '',
        component: r => require.ensure([], () => r(require('../page/home')), 'home')
    }, {
        path: '/item',
        component: r => require.ensure([], () => r(require('../page/item')), 'item')
    }, {
        path: '/score',
        component: r => require.ensure([], () => r(require('../page/score')), 'score')
    }]
}]

不理解的语句为`

r => require.ensure([], () => r(require('../page/home')), 'home')

使用babel在线转换后https://babeljs.io/repl/#?bab...,得到如下:

'use strict';

(function (r) {
  return require.ensure([], function () {
    return r(require('../page/score'));
  }, 'score');
});

有以下几点疑问:

  1. require.ensure是什么意思?
  2. r(require('../page/score')是什么意思,也即为什么ES6的语法要写成r=>的形式,这个r是什么意思?
阅读 3.3k
3 个回答

clipboard.png

r就是一个回调函数的参数

那个是按需加载的方案,可以减少首页的渲染时间

新手上路,请多包涵

r 是 resolve的意思,在框架里面被封装过.
没错,就是和reject配对的resolve
没错,其实就是promise的一个特性的运用.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题