【vite 自动配置路由】

手动配置路由,是一个没有技术含量又浪费时间的工作。本文将介绍 vite 构建的 vue3 项目如何编写一个自动配置路由的脚本。

约定大于配置

要想使用脚本完成路由的自动配置,我们就需要遵循以下目录规则:

  1. 每一个页面对应一个包,当前包下的主页面命名为index.vue
  2. 每个包里必须配置一个page.js
  3. 在每一个page.js里边配置,额外的路由信息,比如:
    export default {
     	title: '商品',
    	menuOrder: 2
    }
    

在这里插入图片描述

原理

因为vite使用的打包工具是rollup,我们可以通过它提供的glob()方法取得目录文件信息,通过一些匹配规则,在解析时自动生成路由。

但是,注意,扫描目录只能生成路由,没有额外的路由信息,如果需要配置额外的路由信息,我们需要配置一个新的page.js文件来配置,并将其配置到脚本中。

代码

// 匹配views目录下的所有page.js,导入页面模块
const pageModules = import.meta.glob('../views/**/page.js',{
    eager: true, // 忽略动态都如函数
    import: 'default' // 提取default出来
})
// 导入组件模块
const comModules = import.meta.glob('../views/**/index.vue')

// 生成并导出路由
const routes = Object.entries(pageModules).map(([pagePath,config])=>{
	// 不明白可以先搭建好目录,打印一下变量看一下
    const path = pagePath.replace('../views','').replace('page.js','') || '/'
    const name = path.split('/').filter(Boolean).join('-') || 'index'
    const comPath = pagePath.replace('page.js', 'index.vue')

    return  {
        path,
        name,
        component: comModules[comPath],
        meta: config
    }
})


// 创建路由器对象
const router = createRouter({
    routes,
    history:createWebHashHistory()
})

// 之后,你就可以做路由拦截配置了

// 路由前置守卫
router.beforeEach((to, from, next)=>{
    // 开启进度条
    NProgress.start()
    next()

})

// 路由后置守卫
router.afterEach((to,from)=>{
    // 关闭进度条
    NProgress.done()
})

//导出路由器对象
export default router
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
vite创建项目时自动配置router,可以按照以下步骤进行操作: 1. 在终端中进入要创建项目的目录,运行以下命令: ``` npm init vite@latest my-project --template vue ``` 这将创建一个使用Vue.js框架的vite项目。 2. 进入项目根目录,安装Vue Router: ``` npm install vue-router ``` 3. 在src目录下创建一个router文件夹,然后在该文件夹中创建一个index.js文件。在该文件中添加以下代码: ```javascript import { createRouter, createWebHistory } from 'vue-router' import Home from '../views/Home.vue' const routes = [ { path: '/', name: 'Home', component: Home }, // 添加其他路由 ] const router = createRouter({ history: createWebHistory(), routes }) export default router ``` 在上述代码中,我们创建了一个基本的路由,其中包括一个首页路由和一个路由历史记录。您可以根据自己的需要添加其他路由。 4. 在main.js文件中引入Vue Router并将其添加到Vue实例中。在main.js文件中添加以下代码: ```javascript import { createApp } from 'vue' import App from './App.vue' import router from './router' createApp(App).use(router).mount('#app') ``` 在上述代码中,我们将Vue Router添加到Vue实例中,并将其作为插件使用。这将使得所有Vue组件都可以使用Vue Router。 5. 最后,启动开发服务器: ``` npm run dev ``` 在您的浏览器中访问http://localhost:3000/,您将看到一个使用Vue Router的网站。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CODER-V

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值