[英]How to pass props between routes in vue.js?
我想将变量作为道具从路由发送到 vue 中的另一个。
我有一个 vue 组件 Champions,使用 v-for 并为 JSON 文件中的每个角色创建一个名为 ChampionCard 的新组件,并每次绑定当前的冠军。
在 ChampionCard 中,我只显示冠军的名字和形象。 我想要这样,当点击 ChampionCard 时,你会被重定向到另一个名为 Champion 的组件,其 URL 为 Champions/:champion。
但我找不到在这两条路线之间发送冠军数据的方法。
冠军组件:
<div class="champions">
<ChampionCard v-bind:champion="champion" v-for="champion in champions" :key="champion.key">
</ChampionCard>
</div>
ChampionCard 组件:
<article @click="redirectTo(champion)" class="champion">
<img class="champion-icon" :src="champion.image" :alt="champion.name">
<h2 class="champion-name"> {{ champion.name }} </h2>
</article>
redirectTo(champion) {
this.$router.push({ name: 'champion', params: { champion: champion.key }})
}
当我被重定向到 Champions/championName 时,上面的代码正在运行,但我无法访问我的 Champion 变量。 将它作为 Champion 组件中的道具发送的最佳方式是什么?
谢谢 :)
我认为你可以实现你想要做这样的事情:
声明一条新路线:
{
path: '/champion/:championKey',
name: 'Some name',
component: ChampionComponent,
}
然后,当重定向到这条新路线时:
redirectTo(champion) {
this.$router.push("/champion/" + champion.key)
}
现在您可以像这样访问 url 参数:
this.$route.params.championKey // as declared in router.js
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.