vue路由自动注册

该博客介绍了如何在Vue项目中实现根据src/views文件夹的文件结构自动注册路由。通过require.context函数查找所有index.vue文件,过滤掉父级路由,并将每个页面注册为Vue组件,动态生成路由配置。这简化了路由配置过程,提高了项目维护效率。
摘要由CSDN通过智能技术生成

记录一下vue路由自动注册的一种方式
根据src/views文件夹的路径自动注册路由,文件结构如下:

src
|--view
|----page1 // 页面一
|------components // 页面一的组件
|------index.vue // 页面一的入口组件
|----page2 // 页面2
|------components // 页面2的组件
|------index.vue // 页面2的入口组件
|----index.vue // 公共的布局组件

router/index.js

import Vue from 'vue'
import VueRouter from 'vue-router'
important index from '../views/index.vue'

// 路由自动化注册
const requireComponent = require.context('@/views', true, /index.vue$/) // 找到views路径下的所有文件
const dynamic_route = requireComponent.keys().filter(fileName => {
  if(fileName === './index.vue') { // 过滤掉父节点的路由
    return false
  } else {
    return true
  }
})
.map(fileName => {
  const componentConfig = requireComponent(fileName)
  const componentName = fileName.replace(/^\.\//,'').replace(/\.vue$/,'')// 剥去文件名开头的 `./` 和`.vue`结尾的扩展名
  const componentNameRe = componentName.replace(/\//g,'-') // 设置name为文件夹名-index
  const component = Vue.component(componentNameRe,componentConfig.default || componentConfig) // 根据路径注册成组件
  const result = {
    path: componentName,
    name: componentNameRe,
    component
  }
  return result
})
const routes = [
  {
    path: '/',
    component: index,
    name:'index',
    children: dynamic_route
  }
]
export default routes


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值