$router.push
在 Vue Router 中可以用来导航到不同的路由,并且你可以在其中添加参数。这些参数通常被称为“查询参数”或“路由参数”。
查询参数:这些是添加到 URL 末尾的参数,通常用于向服务器发送某些信息,但不会被包含在路由定义中。查询参数是通过 query
属性来传递的。
例如:
javascriptthis.$router.push({ path: 'user', query: { userId: 123 }});
这将导航到 /user
路径,并在 URL 中添加查询参数 ?userId=123
,所以完整的 URL 会是 /user?userId=123
。
查询参数可以使用
this.$route.query.url
获取
路由参数:这些是定义在路由配置中的参数,用于在组件内部访问。它们通常用于在多个路由之间共享数据。
例如,在路由配置中:
javascriptconst router = new VueRouter({ routes: [ { path: '/user/:id', component: User } ] });
你可以使用 $router.push
来导航到这个路由,并传递一个参数:
javascriptthis.$router.push({ name: 'user', params: { id: 123 }});
这将导航到 /user/123
路径,并且 id
参数可以在 User
组件中通过 $route.params.id
来访问。
注意:
- 查询参数 (
query
) 总是会被添加到 URL 中,而路由参数 (params
) 只有在路由配置中定义了相应的参数时才会被添加到 URL 中。 - 路由参数 (
params
) 是通过路由名称 (name
) 和参数对象来传递的,而不是通过路径 (path
)。