Query
1.query传参可以使用path,也可以使用name;
2.query相当于get请求,参数拼接在路由的后面;
3.query是拼接在路由后面的,因此有没有没关系;
使用: this.$router.push { name: "home", query: { id: 12, name: "lisi" } }
接收参数: this.id = this.$route.query.id;
this.name = this.$route.query.name
路由: { path: '/', name: "home", component: () => import("@/home") }
params:
1.params是路由的一部分,因此使用params传参,路由上必须写对应的参数;
2.进行路由跳转的时候要传值,否则会跳转页面失败;
3.params只能使用name来传参;
4.params相当于post请求,参数对用来说是不可见的;
使用: this.$router.push { name: "home", params: { id: 8, name: "zhangsan" } }
接收参数: this.id = this.$route.params.id
this.name = this.$route.params.name
路由: { path: "/home/:id/:name"; name: "home" component: () => import("@/home") }
常见应用场景
通常,我们会将分页、搜索等信息放在query里;而点击进如某个列表项目的详情页时,会把项目id以params的形式放在url中。