当使用vue-router
和.vue
文件时,没有文档化的方式将数据从一个视图/组件传递到另一个视图/组件。如何使用vue路由器将数据从一个视图传递到另一个视图
让我们采取以下设置...
main.js:
import Vue from 'vue';
import VueRouter from 'vue-router';
Vue.use(VueRouter);
let routes = [
{
path: '/page1',
component: require('./views/Posts.vue')
},
{
path: '/page2',
component: require('./views/EditPost.vue')
}
];
let router = new VueRouter({
routes
});
new Vue({
el: '#main',
router
});
Posts.vue:
<template>
<div>
Posts.vue passing the ID to EditPost.vue: {{ postId }}
</div>
</template>
<script>
export default {
data() {
return {
allPostsHere: // Whatever...
}
}
}
</script>
EditPost.vue:
<template>
<div>
EditPost.vue received ID from Posts.vue: {{ receivedId }}
</div>
</template>
<script>
export default {
data() {
return {
receivedId: // This is where I need the ID from Posts.vue
}
}
}
</script>
请注意:这是不可能直接从EditPost.vue
接收ID,因为它必须从Posts.vue
选择。
问题:如何将ID从一个视图/组件传递给另一个?
你尝试过吗? https://github.com/vuejs/vue-router/blob/dev/docs/en/essentials/passing-props.md – Pradeepb
是的,你可以看到你的例子从url/route获取ID。这不是我需要的。 –
上面链接的内容几乎完全符合您的需求。你可以定义你的路由来接受一个参数,或者用道具设置为true来以编程方式推送它。 – Bert