为什么使用 vite-plugin-pages
在以前,写完vue之后,还需要配置router,如下:
[
{
“path”: “/users”,
“component”: “/src/views/users.vue”,
“children”: [
{
“path”: “”,
“component”: “/src/views/users/index.vue”,
“name”: “users”
},
{
“path”: “:id”,
“component”: “/src/views/users/[id].vue”,
“name”: “users-id”
}
]
}
]
使用 vite-plugin-pages
之后:就可以更高效快捷开发。
只需要在目录写好对应页面,即可自动生成路由,上面的路由对应的文件结构如下。
src/pages/
├── users/
│ ├── [id].vue
│ └── index.vue
└── users.vue
注意: 当然这里使用了 pages
,因为是默认配置,你也可以配置成原来大家更习惯的 views
。
默认情况下,页面是从目录中的 .vue
或者 .js``.ts
文件 导出的 Vue 组件 src/pages
。
您可以通过在应用程序中导入模块来访问生成的路由。
安装
使用命令:
pnpm add -D vite-plugin-pages
这里使用pnpm进行安装,可根据自身实际更换使用yarn,npm等。
配置
在 vite.config.ts
中进行配置
import Pages from ‘vite-plugin-pages’
export default defineConfig(
plugins: [
// …
Pages(),
],
}
在 env.d.ts
中进行配置
// vite-env.d.ts
///
这样就可以正常使用了。
可用配置项
dirs
目录
- 类型:sting | []
- 默认值:“/src/pages”
这里还可以传数组。可以指定前缀,如下:
Pages({
dirs: [
{ dir: ‘src/pages’, baseRoute: ‘’ },
{ dir: ‘src/home/news/**/pages’, baseRoute: ‘news’ },
{ dir: ‘src/admin/pages’, baseRoute: ‘admin’ },
],
}),
对应如下的文件目录:
src/
├── home/
│ └── news/
│ ├── components/
│ └── pages/
├── admin/
│ ├── components/
│ └── pages/
└── pages/
相当于可以自定义跳过一层目录,使路由更简洁。
extensions
后缀
- 类型:[]
- 默认值:[‘vue’, ‘js’]
可定义为:[‘vue’, ‘ts’, ‘js’]
exclude
解析页面时要排除的路径
- 类型:[]
- 默认值:无
上面配置目录的例子,里面有 components
目录,我们不希望他被解析为路由,即可进行配置:
exclude: [‘**/components/*.vue’],
importMode
导入模式
- 类型: ‘sync’ | ‘async’ | (filepath: string, pluginOptions: ResolvedOptions) => ‘sync’ | ‘async’)
- 默认:
顶级索引文件:‘sync’,其他:async。
extendRoute
扩展路由
类型: (route: any, parent: any | undefined) => any | void
一个函数,它接受一个路由并可选地返回一个修改后的路由。这对于使用额外数据(例如路线元数据)扩充您的路线很有用。
Pages ( {
extendRoute ( route , parent ) {
if ( route . path === ‘/’ ) {
// 索引未认证
。return route
}
// 使用指示路由需要身份验证的 meta 来增加路由
return {
... route ,
meta : { auth : true } ,
}
} ,
} ) ,
其他参数可自行了解。
vue页面
<route>
通过将块添加到 SFC将路由元添加到路由。这将在生成后直接添加到路由中,并将覆盖它。
您可以指定要使用的解析器 using ,或使用选项 <route lang="yaml">
设置默认解析器。
支持的类型: JSON, JSON5, YAML
默认: JSON5
JSON/JSON5:
meta:
requiresAuth: true
评论区