import { defineAsyncComponent, AsyncComponentLoader } from 'vue' import { AsyncLoading, AsyncSkeletonLoading } from '@/components/GoLoading' /** * * 动态注册组件 */ export const componentInstall = (key:string, node: T) => { if(!window['$vue'].component(key) && node) { window['$vue'].component(key, node) } } /** * * 异步加载组件 * @param loader * @returns */ export const loadAsyncComponent = (loader: AsyncComponentLoader) => defineAsyncComponent({ loader, loadingComponent: AsyncLoading, delay: 20, }) export const loadSkeletonAsyncComponent = (loader: AsyncComponentLoader) => defineAsyncComponent({ loader, loadingComponent: AsyncSkeletonLoading, delay: 20, })