不再需要为每一个路由编写冗长的 routes 配置啦,新建文件便可自动生成路由!
使用方法
1. 安装 unplugin-vue-router
npm i -D unplugin-vue-router
2. 修改 vite 配置
vite.config.ts
import VueRouter from 'unplugin-vue-router/vite'
plugins 中加入 VueRouter ,注意其必须在 vue() 之前
plugins: [
// VueRouter 必须在 vue() 之前
VueRouter({}),
vue(),
vueJsx(),
vueDevTools()
],
3. 修改路由配置
src/router/index.ts
import { createRouter, createWebHistory } from 'vue-router'
import { routes } from 'vue-router/auto-routes'
const router = createRouter({
history: createWebHistory(),
routes
})
export default router
src/App.vue 中为
<template>
<RouterView />
</template>
- 组件 RouterView 和 RouterLink 都是全局注册的,因此无需导入。见官网
自动路由规则
默认情况下,会为 src/pages 中的文件自动创建路由(可以通过配置修改为其他目录,但不建议这么做)
推荐的页面目录结构 :
自动路由效果为 :
路由 | 文件 |
---|---|
/ | pages/index.vue |
/about | pages/about.vue |
/users | pages/users/index.vue |
/users/1 | pages/users/[id].vue |
/other | pages/[…404].vue |
- index.vue 的路由为
/
不是/index
- [id].vue 会得到动态路由,与 vue-router 中的
/:id
效果相同
比如 [id].vue 的内容为
<script setup lang="ts">
import { useRoute } from 'vue-router'
const route = useRoute()
</script>
<template>
<div>用户详情</div>
<p>id:{{ route.params.id }}</p>
</template>
<style scoped lang="scss"></style>
则访问 http://localhost:5173/users/1
的效果为:
用户详情
id:1
- […404].vue 用于匹配所有不存在的路由,内容通常为 404 页面。
<template>
<div>404</div>
</template>
[...404].vue 中的 404 也可以自定义为任意其他的字符串,如 path,all 等,效果一样,此处为了方便识别为 404 页面,用的 404。
自定义路由
当自动路由无法满足需求时,可以参考下方代码自定义路由
src/router/index.ts
import { createRouter, createWebHistory } from 'vue-router'
import { routes } from 'vue-router/auto-routes'
const router = createRouter({
history: createWebHistory(),
routes: [
...routes,
// 自定义配置路由 /test ,访问文件 src/views/test.vue
{
path: '/test',
component: () => import('@/views/test.vue')
}
]
})
export default router
更多配置和用法见官网
https://uvr.esm.is/guide/configuration.html