ES6中require的使用

今天在写vue-router时遇到了一个问题,我配置了一个路由,希望按需加载。如下:

/**
 * Created by Administrator on 2016/8/16 0016.
 */
export default {
  routes: {
    '/': require('./home'),
    '/todo': require('./todo'),
    'hello': require('./hello')
  },
  alias: {
    // '/login/:username': '/login'
  }
}

.todo模板如下:

/**
 * Created by Administrator on 2016/8/16 0016.
 */
export default {
  icon: 'todo',
  title: '去做',
  name: 'todo',
  exact: true,
  auth: true,
  component: resolve => require(['../pages/todo'], resolve)
}

配置完运行时,说挂载不到'/','todo','hello'模板,打印出日志发现,使用require导入的部分都放在了default属性下了。如下
图片描述
为在配置路由时修改成如下就可以运行:

export default {
  routes: {
    '/': require('./home').default,
    '/todo': require('./todo').default,
    'hello': require('./hello').default
  },
  alias: {
    // '/login/:username': '/login'
  }
}

疑问是:
1、为什么require进来的属性会默认添加到default属性中
2、自己手动添加default,是否就不是按需加载了(我认为default就是默认加载的)

初学前端望解答,先谢谢各位了

阅读 13.4k
1 个回答

这个东西文档上有吧,你没仔细看,es6模块语法转换成require的话,默认导出的那个变量就是挂载在属性为default上的,按需加载跟default没什么关系,只跟webpack的语法有关

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