千锋教育web前端高频面试题视频教程,kerwin大话前端面试秘籍(附答案)
2023-07-16 20:14 作者:bili_56987530692 | 我要投稿

1.Params(路由参数):
使用params时,参数会被编码到URL的路径中,例如:/users/{id}。
参数值可以通过$route.params访问。
路由定义时需要在路由路径中指定参数,例如:path: '/users/:id'。
传递参数时,使用router.push({ path: '/users/1' })或router.push('/users/1')。
参数是必须的,如果未提供参数值或参数名,则会导致路由匹配失败。
2.Query(查询参数):
使用query时,参数会被编码到URL的查询字符串中,例如:/users?id=1&page=2。
参数值可以通过$route.query访问。
路由定义时不需要在路由路径中指定参数,例如:path: '/users'。
传递参数时,使用router.push({ path: '/users', query: { id: 1, page: 2 } })。
参数是可选的,可以传递多个参数,并且参数名可以自定义。
主要区别:
URL的形式不同:params的参数被编码到URL的路径中,query的参数被编码到URL的查询字符串中。
使用方式不同:params通过路由路径定义和访问参数,query通过$route.query访问参数。
是否必须:params的参数是必须的,如果未提供参数值或参数名,则会导致路由匹配失败;query的参数是可选的,可以不传递参数。