vue异步组件使用及监听组件挂载状态
对有加载状态的异步组件的封装
/** * 处理路由页面切换时,异步组件加载过渡的处理函数 * @param {Object} AsyncView 需要加载的组件,如 import('@/components/home/Home.vue') */ // 使用方式 const helloWorld = () => lazyLoadView(import('@/components/helloWorld')) export const lazyLoadView = (AsyncView) => { return () => ({ // 需要加载的组件 (应该是一个 `Promise` 对象) component: AsyncView, // 异步组件加载时使用的组件 // loading: require('@/components/public/RouteLoading.vue').default, loading: { template: 'loading...
'},
// 加载失败时使用的组件
// error: require('@/components/public/RouteError.vue').default,
error: { template: 'error...
'},
// 展示加载时组件的延时时间。默认值是 200 (毫秒)
delay: 200,
// 如果提供了超时时间且组件加载也超时了,
// 则使用加载失败时使用的组件。默认值是:`Infinity`
timeout: 10000
});
}
使用
使用@hook生命周期钩子函数监听组件挂载状态
也可以自定义@mounted方法,自组建通过this.$emit触发