【发布时间】:2018-01-25 02:07:32
【问题描述】:
当使用 vue-router 和 .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 从一个视图/组件传递到另一个?
【问题讨论】:
-
是的,您可以看到您的示例从 url/route 获取 ID。这不是我需要的。
-
上面链接的内容几乎正是您所需要的。你可以定义你的路由来接受一个参数,或者在 props 设置为 true 的情况下以编程方式推送它。
标签: vue.js vuejs2 vue-component vue-router