vue 异步组建处理路由

 import SwLoading from '@/components/sw-loading'
 import env from '@/common/env'

 let arrRouter = [
     { name: 'AAAAA', url: 'page-aaaaa' },
     { name: 'bbbbb', url: 'page-bbbb' },


 ];

 /**
  * 异步组件
  * 
  * @param {string} pageName
  * @return {Component}
  */
 const AsyncComponentWrapper = (pageName) => () => ({
     component: import (`@/pages/${pageName}`),
     loading: SwLoading,
     delay: 200,
     timeout: 3000
 });

 //连接处理方法
 const urlPath = (url) => {
         return Array.isArray(url) ? url.join("/") : url;
     }
     /**
      * 格式化router 对象
      * @param {Array} arr 
      */
 const returnFormatRouter = (arr) => {

     return arr.map(item => ({
         ...item,
         component: AsyncComponentWrapper(urlPath(item.url)),
     }))
 };

 if (!env.isShare) arrRouter.pop();
 arrRouter = returnFormatRouter(arrRouter);

 export default arrRouter;

猜你喜欢

转载自blog.csdn.net/weixin_40222803/article/details/81148054