Vue:实现异步组件
通过对源码的阅读,可以看出异步组件的实现方式一共有三种,第一种:工厂函数的形式。第二种:promise的形式。第三种:高级配置的形式。
第一种:工厂函数
创建异步组件会进入src/core/vdom/helpers/resolve-async-component.js
这个文件当中,所以稍后进入这个文件阅读源码,这是工厂函数的申请形式。
在createComponents方法中,因为传入的是一个工厂函数,所以构造器的cid是不存在的,所以就会调用resolveAsyncComponent方法,下面进入这个方法阅读源码。
在工厂函数的实现中,会调用once方法,once方法就是vue对一个方法的封装,保证这个方法只会执行一次,采用的是闭包的方式实现的。
可以看到执行的是ensureCtor这个方法,那么进入这个方法里看一看