先前学了ng2,再学vue2的时候 总是会拿ng2 和 vue2 进行比较。。
不比不知道,vue2的路由真是不能再简单了,
因为使用的webpack作为打包工具,配制路由组件懒加载,只需要让webpack打包的时候给对应的组件单独打包一个新的chunk成为独立的模块,然后用路由加载这个模块就行了。

在路由的配置文件中router/index.js:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
const User = r => require.ensure([], () => r(require('../components/User')), 'user')
// 此处使用AMD规范的require引入对应的组件
// 'user' 为webpack打包的chunk的名字

Vue.use(Router)

export default new Router({
routes: [
{
path: '/user',
component: User
}
]
})
require.ensure()

webpack 在编译时,会静态地解析代码中的 require.ensure(),同时将模块添加到一个分开的 chunk 当中。这个新的 chunk 会被 webpack 通过 jsonp 来按需加载。
详见官网文档:代码拆分 - 使用 require.ensure