我想将数据传递到路由,而无需在路径中定义参数。我已经能够通过使用查询参数来完成数据传递,但我宁愿不在URL中显示参数。
据我在互联网和Vue路由器的文档中所知,这是可能的,但我不能100%确定如何实现。因此,我很乐意得到一些帮助。
为了给你一个简短的想法,这里是我正在使用的代码:
Cart.vue,我想推送路由器的文件:
this.$router.push({ path: '/checkout', params: {nextUrl: this.$route.fullPath, pid: this.$route.query.pid, quantity: this.quantity }}).catch(() => {});
Checkout.vue,在这里我想检索参数,现在我只使用console.log,我还放下了道具(显然console.log在生命周期挂钩中(:
props : ['pid', 'quantity']
console.log(this.$route.params.pid);
console.log(this.$route.params.quantity);
最后,这是我的路线:
{
path: '/checkout',
component: Checkout,
children: [
{
// path: '',
// component: Personal,
// }, later afrekenen als gast toevoegen
path: '',
component: Address,
},
{
path: '/checkout/payment',
component: Payment,
},
{
path: '/checkout/confirm',
component: OrderCheck,
}
],
meta: {
requiresAuth: true,
},
props: true
},
根据我所读到的内容,你可以简单地添加";props:true;允许任何参数通过?我不太确定,尤其是因为它正在回归;未定义的";在控制台中。
任何帮助都将不胜感激,提前感谢!
UPDATE当我将路径"/checkout"更改为名称"checkout"并在路由中指定名称时,它会起作用,但这不是很好,因为它会返回有关默认子路由的警告。
第二次更新我想我是通过在默认子路由中添加名称"checkout"来实现的。
您可以执行以下操作:
<router-view :some-value="value"/>
在您的组件中,只需定义道具:
props: ["someValue"]
请注意,道具正在传递给所有路由的组件(但只要您没有定义道具,就无法访问(。
使用path
不能传递params,只能在vue路由器中使用命名路由。