首先需要defineAsyncComponent定义一个异步组件,由于从服务端拿到的远程组件是一个普通的 Vue 单文件组件 (SFC),而defineAsyncComponent接收的却是vue组件对象。
所以这时需要使用一个工具将SFC编译成vue组件对象,可以自己写工具也可以使用三方库vue3-sfc-loader,这个库其实也是调用vue暴露出来的底层编译API。到这里就可以像使用普通组件一样去使用动态加载的远程组件啦。
由于不支持上传视频和GIF,效果图和代码在原文,地址:
如果你对vue编译黑魔法感兴趣,可以看一下我写的完全免费开源电子书《vue3编译原理揭秘》