Vue.js 中的异步组件可以实现懒加载,即当页面需要用到某个组件时才会去加载该组件的代码,而不是在页面初始化时就把所有组件的代码都加载进来。
要使用异步组件,需要在组件定义中使用工厂函数来返回一个 Promise 对象,当该 Promise 对象被解析时,返回一个组件对象,该组件对象就可以在页面中使用了。同时,为了避免页面加载时的空白,可以在组件定义中添加一个 loading 组件,当异步组件加载完成前,会先显示 loading 组件。
例如:
Vue.component('my-component', function (resolve, reject) {
// 异步加载组件
setTimeout(function () {
// 成功时返回组件对象
resolve({
template: '<div>Hello World</div>'
})
// 失败时返回错误信息
// reject('Load component failed')
}, 1000)
})