每次vue项目新增页面都要重新配置路由,页面多了之后就会导致router文件特别长,当然我们也可以把路由按模块来分开配置,但是始终是需要我们手动去配置,那么有没有一种方法可以减少路由的配置呢?
require.context() 为我们提供了解决方案
*require.context()*有三个参数,分别是:
- directory:表示检索的目录
- useSubdirectories:表示是否检索子文件夹
- regExp:匹配文件的正则表达式,一般是文件名
import Vue from 'vue' import VueRouter from 'vue-router' Vue.use(VueRouter) let routes = [] // 自动读取views文件夹下的所有vue文件 const files = require.context('../views', true, /\.vue$/) files.keys().map((item) => { let path = item.slice(1).replace(".vue", "").toLowerCase(); // 获取组件信息 const comp = files(item).default console.log(comp); routes.push({ path, name: comp.name, component: () => import(`../views${item.slice(1)}`), }); }); // 匹配 / 路由 routes.unshift( { path: '/', name: 'Home', component: () => import('../views/home/Home.vue'), } ) // 当匹配不到路由时,匹配一个404页面 routes.push( { path: '*', name: 'Error', component: () => import('../views/error/index.vue'), } ) console.log(routes); const router = new VueRouter({ mode: "history", routes }) export default router
热门文章
- 动物打疫苗需要什么 动物打疫苗需要什么证件
- 「1月1日」最高速度18.4M/S,2025年Clash/V2ray/SSR/Shadowrocket每天更新免费节点订阅地址分享
- 动物医院有公立的吗还是私立的好呢 动物医院有公立的吗还是私立的好呢知乎
- 妙三多三针有什么区别(妙三多是几针)
- 「1月9日」最高速度19.2M/S,2025年Clash/Shadowrocket/V2ray/SSR每天更新免费节点订阅地址分享
- 动物医院诊室图片大全集(动物医院布局)
- 哈尔滨农业大学动物医院怎么样知乎(哈尔滨农业大学动物医院电话)
- 宠物领养协议书怎么生效(宠物领养协议免费下载)
- 「12月6日」最高速度22.4M/S,2024年Shadowrocket/V2ray/SSR/Clash每天更新免费节点订阅链接
- 开宠物店利润大吗知乎文章推荐(开宠物店利润高吗)