普通的.vue文件直接可以利用defineAsyncComponent()异步,但对jsx函数组件失效
import { defineAsyncComponent } from 'vue';
//.vue组件正常
const load = defineAsyncComponent(() => import('./components/load/index.vue'));
//jsx函数组件不显示
const loading = defineAsyncComponent(() => import('@/components/loading'));
请问jsx函数组件如何使用defineAsyncComponent()呢
JSX组件
1.默认暴露可以直接
const loading = defineAsyncComponent(() => import('@/components/loading'));
2.分别暴露的情况下需要特殊处理 (分别暴露,可以在一个文件中写多个jsx组件)
const loading = defineAsyncComponent(() => import('@/components/loading').then(({ loading }) => loading));
用其他的方式实现异步加载
换个思路,本身的解析格式就是不一样的,.vue文件、.jsx文件 两者本身就不是同样的一种解析方式
参考下这种异步加载方式,如果没用的话再找下其他的异步加载方式