VueJS vue-router 将值传递给路由
VueJS vue-router passing a value to a route
在带有 vue-router 2 的 VueJS 2 中,我正在使用带有子组件的父视图,如下所示:
WidgetContainer.vue 路线 /widget_container/:
<template>
<component :is="activeComponent"></component>
</template>
<script>
import WidgetA from './components/WidgetA'
import WidgetB from './components/WidgetB'
export default {
name: 'WidgetContainer',
components: {
WidgetA,
WidgetB
},
data () {
return {
activeComponent: 'widget-a'
}
}
}
</script>
在 WidgetA 中,我可以选择一个小部件 ID
<template>
// v-for list logic here..
<router-link :to="{ path: '/widget_container/' + widget.id }"><span>{{widget.name}} </span></router-link>
</template>
<script>
export default {
name: 'WidgetA',
data() {
return {
widgets: [
{ id: 1,
name: 'blue-widget'
}]}}
routes.js:
export default new Router({
routes: [
{
path: '/widget_container',
component: WidgetContaner
},
{
path: '/widget_container/:id?',
redirect: to => {
const { params } = to
if (params.id) {
return '/widget_contaner/:id'
} else {
return '/widget_container'
}
}
}]})
从 WidgetContainer 如果路由是 /widget_container/1(其中“1”是在 WidgetA 中选择的 id)我想渲染 WidgetB,但我无法解决:
1) WidgetA中如何将选中的widget id传入router-link
2) 如何在 WidgetContainer 中知道路由是 /widget_contaner/1 而不是 /widget_container/ 并相应地呈现 WidgetB。
有什么想法吗?
在带有 vue-router 2 的 VueJS 2 中,我正在使用带有子组件的父视图,如下所示:
WidgetContainer.vue 路线 /widget_container/:
<template>
<component :is="activeComponent"></component>
</template>
<script>
import WidgetA from './components/WidgetA'
import WidgetB from './components/WidgetB'
export default {
name: 'WidgetContainer',
components: {
WidgetA,
WidgetB
},
data () {
return {
activeComponent: 'widget-a'
}
}
}
</script>
在 WidgetA 中,我可以选择一个小部件 ID
<template>
// v-for list logic here..
<router-link :to="{ path: '/widget_container/' + widget.id }"><span>{{widget.name}} </span></router-link>
</template>
<script>
export default {
name: 'WidgetA',
data() {
return {
widgets: [
{ id: 1,
name: 'blue-widget'
}]}}
routes.js:
export default new Router({
routes: [
{
path: '/widget_container',
component: WidgetContaner
},
{
path: '/widget_container/:id?',
redirect: to => {
const { params } = to
if (params.id) {
return '/widget_contaner/:id'
} else {
return '/widget_container'
}
}
}]})
从 WidgetContainer 如果路由是 /widget_container/1(其中“1”是在 WidgetA 中选择的 id)我想渲染 WidgetB,但我无法解决:
1) WidgetA中如何将选中的widget id传入router-link 2) 如何在 WidgetContainer 中知道路由是 /widget_contaner/1 而不是 /widget_container/ 并相应地呈现 WidgetB。
有什么想法吗?