如何通过路由传值,params和query又有什么区别?
正文
vue跨路由传值有两种方式:params和query
第一种,name params
传值页js代码
//把项目id存进路由 vm.$router.push({ name: "MyJionDetail", params: { id: vm.proid,//冒号前面的变量可以自己定义 twoproname: vm.twoproname, proname: vm.twoValue } });
接收传值页js代码
vm.proid = vm.$route.params.id; vm.twoproname = vm.$route.params.twoproname; vm.proname = vm.$route.params.proname;
第二种,path,query
传值页js代码
//把项目id存进路由 vm.$router.push({ path: "MyJionDetail", query: { id: vm.proid,//冒号前面的变量可以自己定义 twoproname: vm.twoproname, proname: vm.twoValue } });
接收传值页js代码
vm.proid = vm.$route.query.id; vm.twoproname = vm.$route.query.twoproname; vm.proname = vm.$route.query.proname;
两者的区别
1.params类似于post,query更加类似于我们ajax中get传参,params在地址栏不显示参数。
2.params传值一刷新就没了,query传值刷新还存在。
3.query只能对应path,params只能对应name,否则传值就会失败