打包构建应用时,JavaScript 包会变得非常大,影响页面加载。如果我们能把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件,这样就更加高效了。
结合 Vue 的异步组件和 Webpack 的代码分割功能,轻松实现路由组件的懒加载。
1.异步组件:
以工厂函数的形式来定义组件:
这个工厂函数会异步解析你的组件定义。Vue 只有在这个组件需要被渲染的时候才会触发该工厂函数,且会把结果缓存起来供未来重渲染,这个工厂函数会收到一个 resolve 回调(注意和promise的resolve区分),这个回调函数会在你从服务器得到组件定义的时候被调用
eg:
Vue.component('async-example', function (resolve, reject) {
setTimeout