【发布时间】:2017-08-03 12:49:07
【问题描述】:
将数据从一个页面传递到另一个页面的简单任务让 Vue.js 中的新手非常头疼 这是我的路由器
在 Vue 中做起来有那么难吗?今天真是让我头疼。 从 API 获取数据,保存并发送到另一个组件。我该怎么做?
【问题讨论】:
-
你要传递什么数据?
activities?
标签: javascript rest vue.js vuejs2 vue-router
将数据从一个页面传递到另一个页面的简单任务让 Vue.js 中的新手非常头疼 这是我的路由器
在 Vue 中做起来有那么难吗?今天真是让我头疼。 从 API 获取数据,保存并发送到另一个组件。我该怎么做?
【问题讨论】:
activities?
标签: javascript rest vue.js vuejs2 vue-router
正如安东尼所说,既然你已经在router/index.js 中启用了道具,你可以像这样在router.push 中传递参数:
router.push({
name: 'events',
params: {
items: data
}
});
那么您将能够在EventsDisplay.vue 中接收items 作为道具
export default {
name: 'eventsDisplay',
props: ['items'],
};
【讨论】:
this.items 应该可以工作。由于它与此问题无关,您可以打开另一个问题并将代码粘贴到那里。
this.$route.params.items 获取它
如果要全局保存它,可以使用事件总线或 VueX 存储来包含它,然后在需要访问它时从该事件总线或存储中保存并加载它。
如果您只想在这两个组件之间传递它,并且仅在从第一个页面访问第二个页面时,您可以按照本指南将属性传递给路由参数:https://router.vuejs.org/en/essentials/passing-props.html
【讨论】:
尝试使用 Vuex
在源组件中
this.$store.commit('changeDataState', this.$data);
this.$router.push({name: 'user-post-create'});
在目标组件中
created () {
console.log('state', this.$store);
this.$store.getters.Data;
}
【讨论】:
在你的 vue 路由器中添加 props true
{
path: "/pay-now",
name: "pay",
props: true,
component: () =>
import(/* webpackChunkName: "about" */ "../components/account/pay.vue"),
beforeEnter: AuthGuard,
},
之后用路由器传递道具
this.$router.push({
name: "pay",
params: {
result:this.result,
}
});
【讨论】: