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触发