转载:https://www.cnblogs.com/listen9436/p/10651132.html
1.query方式传参和接收参数
//路由 { path: '/detail', //这里不需要参入参数 name: "detail", component: detail//这个details是传进来的组件名称 } 使用: 方法1: <router-link :to="{ name: 'details', query: { id: 123 }}"> 点击按钮 </router-link> 方法2: <router-link :to="{ path: 'details', query: { id: 123 }}"> 点击按钮 </router-link> 方法3: this.$router.push({name:'details',query:{id:123}}) 方法4: this.$router.push({path:'details',query:{id:123}}) 页面url显示结果是:http://localhost:8081/#/details?id=123 //接受参数 this.$route.query.id
一般来说,query要用path来引入,params要用name来引入。
2.params方式传参和接收参数
//路由 { path: '/detail/:id/', //后面要带参数 name: "detail", component: detail } 使用: 方法1: <router-link :to="{ name: 'details', params: { id: 123 }}"> 点击按钮 </router-link> 方法2: this.$router.push({name:'details',params:{id:123}}) 页面url显示结果是:http://localhost:8081/#/details/123 //接受参数 this.$route.params.id
直白的来说 query相当于get请求,页面跳转的时候,可以在地址栏看到请求参数,
而 params相当于post请求,参数不会再地址栏中显示
注意点:
query 刷新不会丢失 query里面的数据
params 刷新 会会 丢失 params里面的数据