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