在 Vue 路由中,path
是一个非常重要的属性,它定义了路由的路径。以下是关于 path
的详细介绍:
path
是一个字符串,表示路由的路径。它可以是绝对路径(以 /
开头)或相对路径(不以 /
开头,通常用于子路由)。
/
开头/
开头,表示从根路径开始匹配。例如,/home
、/user/profile
。/
开头,通常用于子路由,表示相对于父路由的路径。例如,在一个子路由中,path: 'profile'
表示父路由路径 + profile
。path
并不是文件名,而是 URL 路径。它与文件名没有直接关系。文件名是组件的实际存储位置,而 path
是用户在浏览器地址栏中看到的路径。
path
可以包含动态段,用于捕获 URL 中的值并传递给组件。动态段以 :
开头,例如 :id
、:name
等。
path
可以使用通配符 *
来匹配所有路径,通常用于 404 页面或捕获所有路径的场景。
可以配置路径是否严格匹配,通过 strict
属性。如果 strict
为 true
,则路径必须完全匹配,包括尾部的 /
。
默认情况下,路径不区分大小写,但可以通过 caseSensitive
属性设置为区分大小写。
以下是一些常见的 path
配置示例:
// 基本路径
{ path: '/home', component: Home }
// 动态路径
{ path: '/user/:id', component: User }
// 带查询参数的路径
{ path: '/search', component: Search }
// 通配符路径(404 页面)
{ path: '*', component: NotFound }
// 嵌套路由
{
path: '/user',
component: User,
children: [
{ path: 'profile', component: UserProfile },
{ path: 'posts', component: UserPosts }
]
}
// 区分大小写的路径
{ path: '/admin', component: Admin, caseSensitive: true }
// 严格模式路径
{ path: '/strict-path/', component: StrictPath, strict: true }
/user
不会匹配 /user/profile
。pathToRegexp
库来自定义路径匹配规则,支持正则表达式。可以使用 redirect
属性来配置路径的重定向。例如,将 /a
重定向到 /b
:
{ path: '/a', redirect: '/b' }
可以使用 alias
属性为路径设置别名。例如,访问 /dashboard
时,实际渲染的是 /home
对应的组件:
{ path: '/home', component: Home, alias: '/dashboard' }
可以使用 props
属性为路由组件传递属性。例如,将动态参数作为 props 传递给组件:
{ path: '/user/:id', component: User, props: true }
可以使用 meta
属性为路由添加元信息。例如,添加权限控制或页面标题:
{ path: '/admin', component: Admin, meta: { requiresAuth: true, title: 'Admin Panel' } }
可以使用 beforeEnter
属性为路由添加进入前的守卫。例如,进行权限验证:
{ path: '/admin', component: Admin, beforeEnter: (to, from, next) => { /* 验证逻辑 */ } }
可以使用函数形式的 component
属性来实现组件的懒加载,提高应用的初始加载性能:
{ path: '/about', component: () => import('./views/About.vue') }